Foros del Web » Programando para Internet » PHP »

Ayuda para Guardar en BD tabla dinamica

Estas en el tema de Ayuda para Guardar en BD tabla dinamica en el foro de PHP en Foros del Web. hola encontre este codigo que genera txtbox en tablas dinamicas agregando y borrando renglon Código: function addRow() { cont++; var indiceFila=1; myNewRow = document.getElementById('tabla').insertRow(-1); myNewRow.id=indiceFila; ...
  #1 (permalink)  
Antiguo 06/02/2009, 10:02
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
De acuerdo Ayuda para Guardar en BD tabla dinamica

hola
encontre este codigo
que genera txtbox en tablas dinamicas agregando y borrando renglon

Código:
function addRow()
{
cont++;
var indiceFila=1;
myNewRow = document.getElementById('tabla').insertRow(-1);
myNewRow.id=indiceFila;
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<td><input type="text" size="4" name="code" /></td>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="25" name="name"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="8" name="unid"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="8" name="cant"/>';
indiceFila++;
}  
function borrar() {
var table = document.getElementById('tabla');
if(table.rows.length > 3) 
	{
	table.deleteRow(table.rows.length-1);
cont--;
	}
}

<table border="1" id="tabla"  cellspacing="1" align="center">
<tr  align="center">
<td colspan="3"><b>Detalles</b></td>
<td colspan="<?=$j;?>"><b>Cantidad </b></td>
</tr>
<tr align="center">
<td>Lote</td>
<td>Serial</td>
<td>MFD</td>
<td><input type="text" size="15" name="lote[]"/></td>
<td><input type="text" size="15" name="serial[]"/></td>
<td><input type="text" size="10" name="mfd[]"/></td>
<td><input type="text" size="8" name="cantdef[]"/></td>
                <? $t++; } ?>
<input type="hidden" name="var_cont">
<td valign="top"><input type="button" name="b1" value="[+]" onClick="addRow('<?=$t;?>')"></td>
<td valign="top"><input type="button" name="b2" value="[-]" onClick="borrar()"></td>
</tr>
</table>
a hora me podrian ayudar. Como le hago para guardarlo en la bd la info que se meta en los textbox

ayuda por fa--
  #2 (permalink)  
Antiguo 06/02/2009, 10:05
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Ayuda para Guardar en BD tabla dinamica

Los nombres de los textbox los guardas en un arreglo y cuando vayas a guardar recorres ese arreglo con un foreach. Ese es el principio, ahora debes desarrollarlo tu...

Saludos
  #3 (permalink)  
Antiguo 06/02/2009, 10:06
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Ayuda para Guardar en BD tabla dinamica

Lo que tienes que hacer es meter toda esa tabla dentro de un FORM y ponerle un boton de tipo SUBMIT para que ejecute un archivo PHP, que procese el formulario y lo pase a la base de datos.

Un saludo.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #4 (permalink)  
Antiguo 06/02/2009, 10:13
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Ayuda para Guardar en BD tabla dinamica

Como vas ? te doy una pista, el name de los textbox que se generen tiene que ser un arreglo.
  #5 (permalink)  
Antiguo 06/02/2009, 10:21
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Ayuda para Guardar en BD tabla dinamica

Hola p3rikl3s,

Si por "arreglo" te refieres a ARRAY... me parece que no se puede poner como NAME de un TEXTBOX un ARRAY... en todo caso el valor de un array o de un array asociativo.

Un saludo.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #6 (permalink)  
Antiguo 06/02/2009, 10:21
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Ayuda para Guardar en BD tabla dinamica

OK algo asi verdad?
y todo el script dentro de un form
myNewCell.innerHTML='<input type="text" size="8" name="cant[]"/>';

asi??
  #7 (permalink)  
Antiguo 06/02/2009, 10:33
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Ayuda para Guardar en BD tabla dinamica

Mmm... Esto es a lo que me refiero:

echo"<input id='equ' type='text' name='arraglo[]' value=' '>"

Para guardar haces algo similar a esto:

iif(!empty($_POST['arreglo']))
{

$chk=array_keys($_POST['arreglo']);

}

Y luego:

foreach ($_POST['arreglo'] as $datos){

$q= "insert into tabla values ($datos)";
$result = mysql_query($q);

}

Pruebalo y cualquier duda pregunta... Saludos
  #8 (permalink)  
Antiguo 06/02/2009, 10:39
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Ayuda para Guardar en BD tabla dinamica

ok entiendo mas o menos
pero
echo"<input id='equ' type='text' name='arraglo[]' value=' ".$row['id']." '>"

donde lo debo poner en el codigo java o en la tabla html.
me podrias explicar ese ".$row['id']." de donde sale o para que es ??

gracias p3rikl3s
  #9 (permalink)  
Antiguo 06/02/2009, 10:45
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Ayuda para Guardar en BD tabla dinamica

te muestro el codigo completo

Cita:
<script language='JavaScript'>
var cont=0;
function addRow(t)
{

cont++;
var indiceFila=1;
myNewRow = document.getElementById('tabla').insertRow(-1);
myNewRow.id=indiceFila;
myNewCell=myNewRow.insertCell(-1);alert(cont);
myNewCell.innerHTML='<td><input type="text" size="15" name="lote'+cont+'" /></td>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<td><input type="text" size="15" name="serial'+cont+'" /></td>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="10" name="mfd'+cont+'"/>';

for(var U=0; U<t; U++){
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="8" name="cantdef'+cont+'"/>';

}
indiceFila++;

}

function borrar() {
var table = document.getElementById('tabla');
if(table.rows.length > 3)
{
table.deleteRow(table.rows.length-1);
cont--;
}
}
</script>
<table border="1" id="tabla" cellspacing="1" align="center">
<tr align="center">
<td colspan="3"><b>Detalles</b></td>
<td colspan="<?=$j;?>"><b>Cantidad de Defectos</b></td>
</tr>
<tr align="center">
<td>Lote</td>
<td>Serial</td>
<td>MFD</td>
<?php
$sql_def="SELECT * FROM def,pie
WHERE pie.icve_pieza=def.icve_pieza
and pie.icve_pie='$icve_pie'";

$result_def=mysql_query($sql_def);
$result_def2=mysql_query($sql_def);
$num_def=mysql_num_rows($result_def2);
//echo "<p>Num_def: $num_def<p>";
echo "<input type='hidden' name='num_def_php' value='$num_def'>";

$j=1;
while($row_d = mysql_fetch_array($result_def))
{
$icve_defecto = $row_d['icve_defecto'];
$cdesc_def = $row_d['cdesc_defecto'];
//echo "<span>$j. <input type='text' name='def$j' size='5' value='0'> <b>$cdesc_def</b> <br /> </span>";
echo "<input type='hidden' name='cdesc_def$j' value='$cdesc_def'>";

?><td><?=$cdesc_def;?></td><?
$j++;
}?>
</tr>

<tr>


<td><input type="text" size="15" name="lote[]"/></td>
<td><input type="text" size="15" name="serial[]"/></td>
<td><input type="text" size="10" name="mfd[]"/></td>
<? $sql_def="SELECT * FROM def,pie
WHERE pie.icve_pieza=def.icve_pieza
and pie.icve_pie='$icve_pie'";

$result_def=mysql_query($sql_def);
$result_def2=mysql_query($sql_def);
$num_def=mysql_num_rows($result_def2);

// echo "<input type='hidden' name='num_def_php' value='$num_def'>";

$t=0;
while($row_d = mysql_fetch_array($result_def))
{
$icve_defecto = $row_d['icve_defecto'];
$cdesc_def = $row_d['cdesc_defecto'];
//echo "<span>$j. <input type='text' name='def$j' size='5' value='0'> <b>$cdesc_def</b> <br /> </span>";
//echo "<input type='hidden' name='cdesc_def$j' value='$cdesc_def'>";
?><td><input type="text" size="8" name="cantdef[]"/></td>
<? $t++; } ?>
<input type="hidden" name="var_cont">
//mando t para que me genere textbox de a la consulta
<td valign="top"><input type="button" name="b1" value="[+]" onClick="addRow('<?=$t;?>')"></td>
<td valign="top"><input type="button" name="b2" value="[-]" onClick="borrar()"></td>
</tr>
</table>
  #10 (permalink)  
Antiguo 06/02/2009, 11:17
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Ayuda para Guardar en BD tabla dinamica

Correccion: echo"<input id='equ' type='text' name='arraglo[]' value=' '>"

El value va vacío, para que los usuarios ingresen datos en los textbox generados. Disculpa.

Y eso van dentro de la tabla html, que su vez esta dentro del php que contiene al while. Es decir, los escribes dentro del ciclo while con echo:


Cita:
<form action="pagina_que_guarda.php" method="post" >
<?php
.
.
.
while($row_d = mysql_fetch_array($result_def))
{
$icve_defecto = $row_d['icve_defecto'];
$cdesc_def = $row_d['cdesc_defecto'];
//echo "<span>$j. <input type='text' name='def$j' size='5' value='0'> <b>$cdesc_def</b> <br /> </span>";
//echo "<input type='hidden' name='cdesc_def$j' value='$cdesc_def'>";

//LO QUE SIGUE ES EL TEXTBOX CON EL ARREGLO

echo"<td><input type='text' size='8' name='cantdef[]' value=' '/></td>";
.
.
.
?>

</form>
Revisa me avisas cualquier cosa. Saludos
  #11 (permalink)  
Antiguo 06/02/2009, 11:46
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Ayuda para Guardar en BD tabla dinamica

gracias p3rikl3s

voy a probarlo
despues comento...
  #12 (permalink)  
Antiguo 06/02/2009, 16:12
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Ayuda para Guardar en BD tabla dinamica

No funciona el codigo solo guarda en los arreglos de los textbox los primeros datos del renglonn que meto al generar otros ya no

alguien me podria ayudar??

explico de nuevo: Con este codigo genera un renglon nuevo a una tabla con 5 textbox
a hora cada vez que genere uno nuevo el usuario puede insertar valores en estos text

el problema que tengo es que guarda en los arreglos de los textbox el primer renglon y los que genero no


Ayuda por fa????????? :(
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 07:36.