Foros del Web » Programando para Internet » PHP »

Como armar foreach

Estas en el tema de Como armar foreach en el foro de PHP en Foros del Web. Hola, el problema es que genero input text con javascript para ingresar a la base (mysql) distintos productos con sus precios y catidad de una ...
  #1 (permalink)  
Antiguo 22/11/2010, 10:52
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Como armar foreach

Hola, el problema es que genero input text con javascript para ingresar a la base (mysql) distintos productos con sus precios y catidad de una factura.

Es decir, tengo 4 input para los datos de la cabecera de la factura y luego tengo 3 input (producto, cantidad y precio) que con javascript se van agregando.

A los input dinamicos los llame asi:


Código HTML:
<td><input class="prod" type="text" name="prod[]"/></td>
<td><input class="can" type="text" name="cant[]"/></td>
<td><input class="pre" type="text" name="pre[]"/></td> 
Mi pregunta es como debo armar el foreach para ingresarlos en la base.

Gracias y Saludos
  #2 (permalink)  
Antiguo 22/11/2010, 11:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Como armar foreach

Código PHP:
<?php
foreach($_POST['prod'] as $valor){
 
//   cada uno de los valores de una sola variable
echo $valor;

}

o

if(count($_POST['prod']) == count($_POST['cant']) AND count($_POST['prod']) == count($_POST['pre'])){

for(
$i=0$i<=count($_POST['prod']); $i++){

  echo 
$_POST['prod'][$i] . " " $_POST['cant'][$i] ." "$_POST['pre'][$i] ."<br>";
 
}

}
?>
  #3 (permalink)  
Antiguo 22/11/2010, 12:05
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como armar foreach

Gracias por contestar Death_Empire.

Okay ahi obtengo todos los producto ahora mi pregunta es si tengo que volver hacer un foreach mas igual a ese para cantidad y otro para precio.

y despues como los ingreso en la base junto a los datos de la cabecera (nombre del cliente, fecha, etc)?
  #4 (permalink)  
Antiguo 22/11/2010, 12:22
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Como armar foreach

yo creo que el for queda mejor si vas a insertar varios campos en la misma tabla
Código PHP:
<?php
for($i=0$i<=count($_POST['prod']); $i++){

  
//Aca el sQL
  
$SQL "INSERT INTO tabla(campo1,campo2,campo3)values('". ($_POST['prod'][$i] ."','". ($_POST['cant'][$i] ."','". ($_POST['pre'][$i] ."')";

mysql_query($SQL);
 
}
?>
  #5 (permalink)  
Antiguo 22/11/2010, 12:33
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como armar foreach

Death_Empire eres un genio no sabes el tiempo que estuve dandole vueltas a este asunto.

Muchas gracias de verdad.
  #6 (permalink)  
Antiguo 22/11/2010, 14:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como armar foreach

Otra consulta


A lo anterior le agrege un cuarto input llamado total que tendria que recojer la multiplicacion entre cantidad y precio:

Ejemplo:

producto | cantidad | precio | total
----------------------------------------------
cloro | 2 | 11.50 | 23

Como hacer para que al cargar la cantidad y el precio se cargue el total?
  #7 (permalink)  
Antiguo 22/11/2010, 14:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Como armar foreach

Cita:
Como hacer para que al cargar la cantidad y el precio se cargue el total?
Cargarlos donde ??
  #8 (permalink)  
Antiguo 22/11/2010, 15:14
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como armar foreach

En el input total o bien guardar esa multiplicacion en en campo total de la base de datos
  #9 (permalink)  
Antiguo 22/11/2010, 15:22
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Como armar foreach

para guardarlo solo tienes que agregarlo al query sql y le insertar los valores multiplicados, y para colocarlo en un input lo mismo, pones el valor de los campos leidos de la bd
<input type="text" name="total" value="<?php echo ($row['cantidad']*$row['precio']);">
  #10 (permalink)  
Antiguo 22/11/2010, 15:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como armar foreach

ok pero yo lo queria hacer de forma dinamica, por lo que estuve viendo hay que usar javascript, es decir, que en el mismo form realice automaticamente la multiplicacion despues de haber ingresado la cantidad y el precio, sin darle a ningun boton.

Por ejemplo ingreso cantidad 5 precio 10 y en total apareceria 50 automaticamente sin que yo lo cargue.
  #11 (permalink)  
Antiguo 22/11/2010, 15:48
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: Como armar foreach

buenas, creo que el tema que planteo yo puede solucionarse con un for each.

tengo un carrito que manda des de flash via GET el contenido de una variable, tal que asi:

....com?prod_1=naranjas&prod_2=manzanas&prod_3=per as...

quiero recuperar el contenido de todo el array, que se llama productos(y se codifica des del flash). pero no consigo, unicamente me carga el ultimo registro.

he probado con el codigo que poniais arriba pero no me hafuncionado:

Código PHP:

foreach($_GET['productos'] as $valor)

{
echo 
$valor;

pero me da error. como puedo hacerlo?

saludos!
  #12 (permalink)  
Antiguo 22/11/2010, 15:50
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Como armar foreach

eso es javascript.
Código HTML:
<script>
function total(){
  var cant = document.getElementById("cant").value;
  var valor= document.getElementById("valor").value;

  if(cant != '' && valor !=''){
      document.getElementBy("total").value = cant * total;
  }
}
</script>

<input name="valor" id="valor" onchange="total();">
<input name="cantidad" id="cantidad" onchange="total();">
<input name="total" id="total" readonly="readonly"> 
  #13 (permalink)  
Antiguo 22/11/2010, 17:15
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: Como armar foreach

eso no era para mi no death?

Etiquetas: foreach
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 14:09.