Foros del Web » Programando para Internet » PHP »

Pasar Array por Formulario..

Estas en el tema de Pasar Array por Formulario.. en el foro de PHP en Foros del Web. Necesito ayuda para pasar un Array por un Formulario, u otra forma. La cosa es que llegue a otra página. Yo envio el Array asi: ...
  #1 (permalink)  
Antiguo 06/06/2006, 16:30
 
Fecha de Ingreso: febrero-2006
Mensajes: 60
Antigüedad: 18 años, 2 meses
Puntos: 0
Pasar Array por Formulario..

Necesito ayuda para pasar un Array por un Formulario, u otra forma. La cosa es que llegue a otra página.

Yo envio el Array asi:

<input name="array" type="hidden" value="<?=$array?>">

Y luego lo rescato asi:

$array= $_POST["array"];

Pero el unico valor que obtengo es: Array. y ningun dato más.
  #2 (permalink)  
Antiguo 06/06/2006, 16:35
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Con foreach recorres tu arreglo

Código PHP:
<?
$array
$_POST["array"];
foreach(
$array as $element)
{

  echo 
"-->".$element."<br>";

}
?>
Saludillos.
  #3 (permalink)  
Antiguo 06/06/2006, 16:45
 
Fecha de Ingreso: febrero-2006
Mensajes: 60
Antigüedad: 18 años, 2 meses
Puntos: 0
Claro, pero si el array no se envia con los datos ¿Que voy a ver?. Es mas, veo el contenido completo con print_r() y solo me devuelve: Array. Ningun valor más.
  #4 (permalink)  
Antiguo 06/06/2006, 16:46
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Postea la declaracion de $array.
  #5 (permalink)  
Antiguo 06/06/2006, 16:51
 
Fecha de Ingreso: febrero-2006
Mensajes: 60
Antigüedad: 18 años, 2 meses
Puntos: 0
El Array:
Código PHP:
$jugadores[] = $num.';'.$score.';'.$ping.';'.$name.';'.$address
El array lo compruebo en la misma página y me lo muestra:
Código PHP:
Array
(
    [
0] => 0;3;26;DarKCaoS;201.220.114.225:27901
    
[1] => 1;30;9;+=EC=+Camus;200.73.244.20:27901
    
[2] => 2;10;16;FF.EE.KrabineRO;200.104.102.92:27901
    
[3] => 5;2;29;Castrador;201.246.57.129:61242

Aca se envia el Formulario con los datos:
Código PHP:
<form action="panel.php?seccion=accion&accion=kick" method="post" name="kickiar">
    <table>
    <tr>
        <td>Kick</td>
        <td><input name="id" type="text" size="10" maxlength="2"></td>
        <td>Motivo</td>
        <td><input name="motivo" type="text" size="40" maxlength="80"></td>
        <td><a href="#" onclick="servidor();" class="Boton">Kick</a></td>
    </tr>
    </table>
    <input name="jugadores" type="hidden" value="<?=$jugadores?>">
    <input name="servidorID" type="hidden" value="<?=$servidorID?>">
</form>
Y aca es donde tomo los datos:
Código PHP:
<?
$jugadores 
$_POST["jugadores"];
print_r($jugadores); 
?>
Y eso me devuelve: Array
  #6 (permalink)  
Antiguo 06/06/2006, 19:43
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
estuve checando y no encontré la manera de enviar el array,

si analizamos tu array:
$jugadores[]=$num.';'.$score.';'.$ping.';'.$name.';'.$address;

encontramos que contiene 5 tipos de datos fijos como $num,$score,...,$address, entonces yo te recomiendo que concatenes por separado estos valores generando 5 input hidden algo así como:

<iput type='hiden' name='num' value='$num'>

claro antes de eso, tienes que realizar la concatenación, realiza el recorrido de tu cadena, desde cero hasta el último registro. y cada registro guardarlo por separado en su tipo, todos los $num en la cadena num separados por punto y como de acuerdo a tu ejemplo, queda así:

$num="0;1;2;5";
$score="3;30;10,2"

y así con los 5 datos, luego los pasas en forma de input hidden y en el otro script los reagrupas.

Es la única solución que se me ocurrió.

Espero que te sirva,

Puedes escribirme a [email protected] o agregarme al messenger [email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:01.