PHP - Enviar Array de datos por formulario POTS

   
Vista:
Imágen de perfil de Yacoobs

Enviar Array de datos por formulario POTS

Publicado por Yacoobs reyrelampago2005@gmail.com (11 intervenciones) el 04/07/2017 10:21:53
Hola llevo un rato dándole vueltas a lo mismo y no entiendo que estoy haciendo mal a ver si alguien me aclara donde tengo el problema Gracias.

Bueno tengo un archivo llamado prueba.php que contiene estas lineas de código :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
      <?php
 
      $Frutas =["Plátano","Melón","Manzana","Naranja"];
 
      echo"<br>";
 
      foreach ($Frutas as $datos){
 
          echo $datos ." - ";
      }
 
      ?>
        <form method="POST" action="recibeArray.php">
            <input type="hidden" value="<?php serialize($Frutas) ?>" name="frutas" >
            <input type="submit" value="Enviar">
        </form>
 
    </body>
</html>

Hasta aquí parece todo claro creo un array de frutas y intento enviar el contenido de este array por un formulario con el método POST y lo serialize, esto lo recibe otro archivo llamado recibeArray.php.

Este es el contenido del archivo :

1
2
3
4
5
6
7
8
9
10
<?php
 
$obtiene =unserialize($_POST['frutas']);
 
foreach ($obtiene as $datos){
 
      echo $datos ." - ";
}
 
?>

Finalmente esto me da el siguiente error :

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\Pruebas\recibeArray.php on line 11

Bien he estado consultando esto en varios sitios y veo que esta es la forma de proceder, alguna idea de que estoy haciendo mal? gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Yacoobs

Enviar Array de datos por formulario POTS

Publicado por Yacoobs (11 intervenciones) el 04/07/2017 11:47:57
Aquí dejo una de las formas de enviar un Array por Post de una forma extraña pero efectiva, cuesta un poco digerir el código pero funciona:

Archivo formulario:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html>
 
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
      <?php
 
 
      $Colores[]="Rojo";
      $Colores[]="Naranja";
      $Colores[]="Amarillo";
 
      foreach ($Colores as $datos){
 
         echo $datos ." - ";
      }
 
      echo "<br>";
 
      $longArray = count($Colores);
 
      ?>
        <form method="POST" action="recibeArray.php">
            <?php
            for ($x=0;$x<$longArray;$x++):?>
 
                <input type="hidden"  name="frutas<?php echo $x?>" value="<?php echo $Colores[$x] ?>">
            <?php endfor;?>
                <input type="hidden" name="valor" value="<?php echo $longArray?>">
            <input type="submit" value="Enviar">
        </form>
 
    </body>
</html>

Archivo que recibe el Array:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
$long = $_POST["valor"];
 
for ($x=0;$x<$long;$x++){
 
    $frutas[] = $_POST["frutas$x"];
}
 
foreach ($frutas as $datos){
 
      echo $datos ." - ";
}
 
?>

Si te comes la cabeza llegas a lo mismo..... :) Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar