Foros del Web » Programando para Internet » PHP »

Pasar múltiples datos por $_POST

Estas en el tema de Pasar múltiples datos por $_POST en el foro de PHP en Foros del Web. <form action="formulario_procesar.php" method="post"> Código PHP: < table > < tr >         < td >< input name = "producto"  type = "text" /></ td >         < td ...
  #1 (permalink)  
Antiguo 26/10/2010, 22:05
 
Fecha de Ingreso: julio-2010
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 1
Exclamación Pasar múltiples datos por $_POST

<form action="formulario_procesar.php" method="post">
Código PHP:
<table>
<
tr>
        <
td><input name="producto" type="text"/></td>
        <
td><input name="precio" type="text" /></td>
        <
td><input name="cantidad" type="text" /></td>
    </
tr>
    <
tr>
        <
td><input name="producto" type="text"/></td>
        <
td><input name="precio" type="text" /></td>
        <
td><input name="cantidad" type="text" /></td>
    </
tr>
    <
tr>
        <
td><input name="producto" type="text" /></td>
        <
td><input name="precio" type="text" /></td>
        <
td><input name="cantidad" type="text" /></td>
    </
tr>
    <
tr>
        <
td colspan="3" align="right"><input type="submit" value="Aceptar Productos"/></td>
    </
tr>
    </
table
</form>

Tengo otro archivo "formulario_procesar.php" desde el que quiero jalar los datos, si ahorita hago un:

Código PHP:
echo "PRODUCTO: ".$_POST['producto']."<br />";
echo 
"PRECIO: ".$_POST['precio']."<br />";
echo 
"CANTIDAD: ".$_POST['cantidad']; 
Obvio me va mostrar la última fila con los 3 datos, pero lo que quiero es poder mostrarlo correctamente =(

Código PHP:
PRODUCTO     PRECIO     CANTIDAD
ZAPATO          50             1
PANTALON      60             1
CAMISA          30             2 
=( gracias por el apoyo.
  #2 (permalink)  
Antiguo 26/10/2010, 22:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar múltiples datos por $_POST

para emplear múltiples campos debes usar la notación de array en el name
Código HTML:
<input name="producto[]"/>
<input name="precio[]"/>
<input name="cantidad[]"/> 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/10/2010, 22:35
 
Fecha de Ingreso: julio-2010
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Pasar múltiples datos por $_POST

Okas y ahora para mostrarlo? ... un foreach, pero tienes algún HUESO DE CODIGO que me puedas aventar? para verlo.
  #4 (permalink)  
Antiguo 26/10/2010, 22:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar múltiples datos por $_POST

para recibirlo tienes toda la razón, necesitas un bucle pues se trata de un array...

y no necesitas código de ejemplo, si ya sabes trabajar con arrays ya lo tienes!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 26/10/2010, 23:25
 
Fecha de Ingreso: julio-2010
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Pasar múltiples datos por $_POST

Código PHP:
    foreach($producto as $key){
        echo 
$key;
    } 
Con esto consigo sólo del array producto, pero para unirlos todos y mostrarlos en orden el producto con su respectivo precio y cantidad?
  #6 (permalink)  
Antiguo 27/10/2010, 08:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 6
Respuesta: Pasar múltiples datos por $_POST

Código PHP:
Ver original
  1. <td><input name="producto1" type="text"/></td>
  2.         <td><input name="precio1" type="text" /></td>
  3.         <td><input name="cantidad1" type="text" /></td>
  4.     </tr>
  5.     <tr>
  6.         <td><input name="producto2" type="text"/></td>
  7.         <td><input name="precio2" type="text" /></td>
  8.         <td><input name="cantidad2" type="text" /></td>
  9. etc...
Ademas, no esta bien poner mas de una vez el mismo nombre a un input en la misma pagina.
  #7 (permalink)  
Antiguo 27/10/2010, 08:18
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Pasar múltiples datos por $_POST

Saludos

principianteZF No van a tener el mismo nombre, como bien indica pateketrueke

Cita:
para emplear múltiples campos debes usar la notación de array en el name
Cada vez que se cree un campo, por ejmplo producto

Código PHP:
<input name="producto[]"/>
<
input name="producto[]"/>
<
input name="producto[]"/> 
Por "debajo" el esta creando un indice para cada input por lo tanto no tendran el mismo name y sera mas facil de manipular.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 27/10/2010 a las 08:24
  #8 (permalink)  
Antiguo 27/10/2010, 09:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar múltiples datos por $_POST

Cita:
Iniciado por EralROCHA Ver Mensaje
Código PHP:
    foreach($producto as $key){
        echo 
$key;
    } 
Con esto consigo sólo del array producto, pero para unirlos todos y mostrarlos en orden el producto con su respectivo precio y cantidad?
la relación es sencilla, como ya comentaron en el mensaje anterior se conservan los índices de dichos campos, y ahí esta la relación!!
Código PHP:
foreach ($_POST['producto'] as $key => $value)
{
  echo 
$value '<br />';
  echo 
$_POST['precio'][$key] . '<br />';
  echo 
$_POST['cantidad'][$key] . '<br />';

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 27/10/2010, 09:53
 
Fecha de Ingreso: julio-2010
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Pasar múltiples datos por $_POST

Gracias, @pateketrueke.

Etiquetas: pasar, post
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 23:37.