Foros del Web » Programando para Internet » PHP »

Ingreso de datos Desde campos de texto dinamicos a bd

Estas en el tema de Ingreso de datos Desde campos de texto dinamicos a bd en el foro de PHP en Foros del Web. Hola, tengo la cisguiente consulta. Tengo unos campos de texto dinamicos y quiero ingresarlos a mi bd, pero para ponerle el nombre del input no ...
  #1 (permalink)  
Antiguo 15/11/2010, 14:01
 
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 14 años
Puntos: 0
Ingreso de datos Desde campos de texto dinamicos a bd

Hola, tengo la cisguiente consulta.

Tengo unos campos de texto dinamicos y quiero ingresarlos a mi bd, pero para ponerle el nombre del input no se como hacerlo ya que en la pagina donde se van a guardar los datos tengo que llmar al input text y no se como hacerlo,


Porfa ayuda.....
Gracias
  #2 (permalink)  
Antiguo 15/11/2010, 14:10
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 9 meses
Puntos: 55
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

puedes declarar los input como arreglos

<input name='foo[]'>

luego en el archivo php lo tomar como $_POST['foo'][]

con un for lo puedes recorrer

for($i=0;$i<count($_POST['foo']);$i++){
echo $_POST['foo'][$i];
}
  #3 (permalink)  
Antiguo 15/11/2010, 14:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

si eso he hecho pero al parecer tengo un problema con mysql, que no puedpo ingresar varias filas a la vez.


este es el error.


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ('3','2')' at line 1

El primer checkbox (valor 2) y campo de texto (1).
este es para el segundo checkbox (valor 3) y campo de texto (2).
  #4 (permalink)  
Antiguo 15/11/2010, 14:52
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

El error es en la sintaxis del sql. Si colocas la sentencia sql podríamos ver donde está el error.
  #5 (permalink)  
Antiguo 15/11/2010, 14:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

Esta es la programacion de la pagina de los checkboxes y los campos de texto dinamicos

Cita:
><?php
$sql=mysql_query("SELECT * FROM producto",$link) or die ("no puedo ejecutar");
$datos=mysql_fetch_array($sql);
while (is_array($datos)){
?> <table width="368" border="0">
<tr>
<td width="300"><input type="checkbox" name="id" value="<?php echo ($datos['id_pro']) ?>">&nbsp;&nbsp;<?php echo ($datos['nom_pro']) ?></td>
<td> <input name="cantidad" type="text" size="8"></td>
</tr>
<?php
$datos=mysql_fetch_array($sql);
}
?>
Esta es la progrmacion de la pagina que me realiza la insercion de los datos.


Cita:
if (!empty ($cliente) AND ($monto) and ($fecha)) {
if ($enviar=="Grabar"){
$sql=mysql_query("SELECT * FROM producto",$link) or die ("no puedo ejecutar");
$datos=mysql_fetch_array($sql);
while (is_array($datos)){
mysql_query("INSERT INTO detalle (id_pro_det,can_pro_det) VALUES ('{$id}','{$cantidad}')",$link) or die (mysql_error());
mysql_query("INSERT INTO factura (fec_fac,ced_cli,val_tot) VALUES ('{$fecha}','{$cliente}','{$monto}')",$link) or die(mysql_error());
header ("Location:ventas.php");
}
}
}
He declarado todas las variables.

Gracias
  #6 (permalink)  
Antiguo 15/11/2010, 14:58
Avatar de wladtepes  
Fecha de Ingreso: febrero-2008
Mensajes: 140
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

los campos dinamicos los estas agregando con javascript ???

podrias poner los codigos para ver como es la estructura de lo que necesitas

Saludos
  #7 (permalink)  
Antiguo 15/11/2010, 15:02
Avatar de wladtepes  
Fecha de Ingreso: febrero-2008
Mensajes: 140
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

no seria mejor que fuera asi


Código PHP:

mysql_query 
("INSERT INTO detalle (id_pro_det,can_pro_det) VALUES ('".$id."','".$cantidad."','".$link."'") or die (mysql_error()); 
  #8 (permalink)  
Antiguo 15/11/2010, 15:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

No los estoy agregando con javascript sino con php.

el codigo es todo eso no hay mas osea si me jala las variables pero no me las inserta en el mysql
  #9 (permalink)  
Antiguo 15/11/2010, 15:14
Avatar de wladtepes  
Fecha de Ingreso: febrero-2008
Mensajes: 140
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

no seria mejor que fuera asi


Código PHP:

sql2
="insert into algo (dato1,dato2)values($dato1,$dato1)";
$sql3=mysql_query($sql2,$link) or die('La consulta XXX fall&oacute  1;: ' mysql_error()); 
  #10 (permalink)  
Antiguo 15/11/2010, 16:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

Si me ingresa el problema es que solo me ingresa el ultimo valor osea un checkbox infinidad de veces.

Como puedo hacer para que solo me ingrese los datos de los checkboxes que he clickeado ya que solo me ingresa el ultimo chexkboxes este es el codigo de las dos paginas

Pagina de los checkboxes y input text

Cita:
<?php
$sql=mysql_query("SELECT * FROM producto",$link) or die ("no puedo ejecutar");
$datos=mysql_fetch_array($sql);
while (is_array($datos)){
?> <table width="368" border="0">
<tr>
<td width="300"><input type="checkbox" name="id" value="<?php echo ($datos['id_pro']) ?>">&nbsp;&nbsp;<?php echo ($datos['nom_pro']) ?></td>
<td> <input name="cantidad" type="text" size="8"></td>
</tr>
<?php
$datos=mysql_fetch_array($sql);
}
?>

Pagina en donde se ejecuta la accion de grabar.
( y quiero que se grabe en la tabla detalle el detalle de la compra, ya que se puede comprar solo un producto o varios y diferentes cantidades de los mismos.


Cita:
<?php
include("conexion.php");
$link=Conectarse();
$dia=$_POST['dia'];
$mes=$_POST['mes'];
$ano=$_POST['ano'];
$fecha="$ano-$mes-$dia";
$cliente=$_POST['cliente'];
$monto=$_POST['monto'];
$id=$_POST['id'];
$enviar=$_POST['enviar'];
$cantidad=$_POST['cantidad'];

if (!empty ($cliente) AND ($monto) and ($fecha)) {
if ($enviar=="Grabar"){
mysql_query("INSERT INTO detalle (id_pro_det,can_pro_det) VALUES ('".$id."','".$cantidad."')",$link) or die(mysql_error());
mysql_query("INSERT INTO factura (fec_fac,ced_cli,val_tot) VALUES ('".$fecha."','".$cliente."','".$monto."')",$lin k) or die(mysql_error());
header ("Location:ventas.php");
}
}
?>

Estas dos paginas estan dentro de un form C/U

GRacias
  #11 (permalink)  
Antiguo 16/11/2010, 05:36
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

Me parece que el tema viene por los input y los checkbox. Al ser varios deberías crearte un array de ellos:

while (is_array($datos)){
?> <table width="368" border="0">
<tr>
<td width="300"><input type="checkbox" name="id[]" value="<?php echo ($datos['id_pro']) ?>">&nbsp;&nbsp;<?php echo ($datos['nom_pro']) ?></td>
<td> <input name="cantidad[]" type="text" size="8"></td>
</tr>
<?php
$datos=mysql_fetch_array($sql);
}

Ahora tienes el array con los input, para gravar tienes que fijarte si existe el id[] (o sea que haya sido marcado) y grabar:

<?php
include("conexion.php");
$link=Conectarse();
$dia=$_POST['dia'];
$mes=$_POST['mes'];
$ano=$_POST['ano'];
$fecha="$ano-$mes-$dia";
$cliente=$_POST['cliente'];
$monto=$_POST['monto'];
$id=$_POST['id'];
$enviar=$_POST['enviar'];
$cantidad=$_POST['cantidad'];

if (!empty ($cliente) AND ($monto) and ($fecha)) {
if ($enviar=="Grabar"){
for($i=0;$i<count($_POST['cantidad'];++$i) {
if(isset($_POST['id][$i]{
mysql_query("INSERT INTO detalle (id_pro_det,can_pro_det) VALUES ('".$id[$i]."','".$cantidad[$i]."')",$link) or die(mysql_error());
mysql_query("INSERT INTO factura (fec_fac,ced_cli,val_tot) VALUES ('".$fecha."','".$cliente."','".$monto."')",$lin k) or die(mysql_error());
}
header ("Location:ventas.php");
}
}
?>
  #12 (permalink)  
Antiguo 16/11/2010, 05:39
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

Me olvidé de un paréntesis en

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

debería ser:

for($i=0;$i<count($_POST['cantidad']);++$i) {
  #13 (permalink)  
Antiguo 16/11/2010, 10:07
 
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 14 años
Puntos: 0
Respuesta: Ingreso de datos Desde campos de texto dinamicos a bd

Karma hice lo que me dijiste pero sigue ingresando solo un producto no todos los que selecciono.

Que mas puedo ahcer??????


Espero me puedas ayudar.

Gracias

Etiquetas: bd, campos, dinamicos, ingreso
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 15:34.