Ir al contenido


Foto

crear filas en una tabla [Solucionado]


  • Por favor identifícate para responder
4 respuestas en este tema

#1 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 16 mayo 2014 - 01:19

hola a todos, les quiero pedir una ayuda, sucede que necesito que un usuario vaya agregando filas a una tabla segun la cantidad que el cliente necesite de forma dinamica, el pero que tengo que nose como hacer que tambien el name de cada campo cambie de nombre.. o aumente, ya que si mantiene el mismo nombre name, no lo puedo recuperar por post todos los valores de los campos que agrego.
les muestro un codigo de ejemplo

:embarrassed:

delphi
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <!--<script src="Jquery.js" type="text/javascript"></script>-->
  6. <title>Documento sin título</title>
  7. <script>
  8.   var contLin = 3;
  9. function agregar() {
  10.   var tr, td, tabla;
  11.  
  12.   tabla = document.getElementById('tabla');
  13.   tr = tabla.insertRow(tabla.rows.length);
  14.   td = tr.insertCell(tr.cells.length);
  15.   td.innerHTML = "<input name='button' type=button onclick='agregar()' value='+' >";
  16.   td = tr.insertCell(tr.cells.length);
  17.   td.innerHTML = "<input name='button' type=button onclick='borrarUltima()' value='-' >";
  18.   td = tr.insertCell(tr.cells.length);
  19.   td.innerHTML = "<input type='text' value='' size='4' >";
  20.   td = tr.insertCell(tr.cells.length);
  21.   td.innerHTML = "<input type='text' value='' size='10' >";
  22.   td = tr.insertCell(tr.cells.length);
  23.   td.innerHTML = "<input type='text' value='' size='30' >";
  24.   td = tr.insertCell(tr.cells.length);
  25.   td.innerHTML = "<input type='text' value='' size='4' >";
  26.   td = tr.insertCell(tr.cells.length);
  27.   td.innerHTML = "<input type='text' value='' size='4' >";
  28.   td = tr.insertCell(tr.cells.length);
  29.   td.innerHTML = "<input type='text' value='' size='4' >";
  30.   td = tr.insertCell(tr.cells.length);
  31.   td.innerHTML = "<input type='text' value='' size='4' >";
  32.   td = tr.insertCell(tr.cells.length);
  33.   td.innerHTML = "<img src='imagenes_menu/untitled.png' width='20' height='20' style='cursor:pointer' />";
  34.   contLin++;
  35. }
  36. function borrarUltima() {
  37.   ultima = document.all.tabla.rows.length - 1;
  38.   if(ultima > -1){
  39.       document.all.tabla.deleteRow(ultima);
  40.       contLin--;
  41.   }
  42. }
  43.     </script>
  44. </head>
  45. <body>
  46. <div class="factura" id="factura">
  47. <table id="tabla" border="1">
  48. <tr class="cab_factura">
  49.     <td class="enlace10"></td>
  50.     <td class="enlace10"></td>
  51.     <td class="enlace10">Almacén</td>
  52.     <td class="enlace10">Referencia</td>
  53.     <td class="enlace10">Descripción</td>
  54.     <td class="enlace10">Cantidad</td>
  55.     <td class="enlace10">Precio</td>
  56.     <td class="enlace10">%Dto.</td>
  57.     <td class="enlace10">Total Albaran</td>
  58.     <td class="enlace10"></td>
  59.   </tr>
  60.  
  61. <tr>
  62.   <td ><input name="button" type=button onclick="agregar()" value="+" ></td>
  63.   <td ><input name="button" type=button onclick="borrarUltima()" value="-" ></td>
  64.     <td ><input name="almacen" id="sel1" type="text" size="4/></td>
  65.     <td><input name="referencia" type="text" size="10/></td>
  66.     <td><input name="descripcion" type="text" size="30/></td>
  67.     <td><input name="cantidad" type="text" size="4/></td>
  68.     <td><input name="precio" type="text" size="4/></td>
  69.     <td><input name="descuento" type="text" size="4/></td>
  70.     <td><input name="total" type="text" size="4" /></td>
  71.     <td><img src="imagenes_menu/untitled.png" width="20" height="20" style="cursor:pointer" /></td>
  72.   </tr>
  73. </table>
  74. </body>
  75. </div>
  76. </html>



por favor su ayuda.

Saludos
  • 0

#2 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 16 mayo 2014 - 05:10

por favor su ayuda.

Saludos



por favor, si alguien me puede ayudar.



sino alguna ayuda de como plantearlo de otra forma. la idea que quiero hacer que un profesor, solicite una asignatura y la cantidad de secciones y horas.



en una tabla en un combo box, seleccione la asignatura, en la otra columna la cantidad de secciones y en la otra columna, la cantidad de horas por seccion.



puede que mas adelante necesite aumentar la cantidad de columna para agregar otros campos como sala asignada, etc, y al lado un boton de agregar una nueva fila para otro ramo mas.



con el script de mas arriba realiza lo anterior, pero no me cambia la opcion del name.. y nose como plantearmelo de otra forma que haga algo similar..



ademas al recuperar por $_POST, como puedo saber la cantidad de veces que se agrego una fila para llevarlo a una BD.



por favor su ayuda con este tema.
  • 0

#3 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 17 mayo 2014 - 12:13

amigos, al final pude hacer que el name cambiara, lo que me faltaba hacer era concatenar el contador al nombre del name.

ahora tengo otro problema.. como puedo saber por post las veces que se agrego el campo de forma dinamica?, para poder agregarlo via post?

tendria que preguntar en el otro archivo si existe el campo 1 hacer esto, si existe el campo2 hacer esto.. asi seria.. y repetirlo segun yo las veces que lo harian?

les muestro lo que llevo hasta ahora de codigo:


delphi
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <!--<script src="Jquery.js" type="text/javascript"></script>-->
  6. <title>Documento sin título</title>
  7. <script>
  8.   var contLin = 3;
  9. function agregar() {
  10.   var tr, td, tabla;
  11.  
  12.   tabla = document.getElementById('tabla');
  13.   tr = tabla.insertRow(tabla.rows.length);
  14.   td = tr.insertCell(tr.cells.length);
  15.   td.innerHTML = "<input name='button' type=button onclick='agregar()' value='+' >";
  16.   td = tr.insertCell(tr.cells.length);
  17.   td.innerHTML = "<input name='button' type=button onclick='borrarUltima()' value='-' >";
  18.   td = tr.insertCell(tr.cells.length);
  19.   td.innerHTML = "<input type='text' name='almacen"+contLin+"' value='' size='4' >";
  20.   td = tr.insertCell(tr.cells.length);
  21.   td.innerHTML = "<input type='text' value='' name='referencia"+contLin+"' size='10' >";
  22.   td = tr.insertCell(tr.cells.length);
  23.   td.innerHTML = "<input type='text' value='' name='descripcion"+contLin+"' size='30' >";
  24.   td = tr.insertCell(tr.cells.length);
  25.   td.innerHTML = "<input type='text' value=''  name='cantidad"+contLin+"' size='4' >";
  26.   contLin++;
  27. }
  28. function borrarUltima() {
  29.   ultima = document.all.tabla.rows.length - 1;
  30.   if(ultima > -1){
  31.       document.all.tabla.deleteRow(ultima);
  32.       contLin--;
  33.   }
  34. }
  35.     </script>
  36. </head>
  37. <body>
  38. <div class="factura" id="factura">
  39. <form action="post_filas_tablas.php" method="post">
  40. <table id="tabla" border="1">
  41. <tr class="cab_factura">
  42.     <td class="enlace10"></td>
  43.     <td class="enlace10"></td>
  44.     <td class="enlace10">Almacén</td>
  45.     <td class="enlace10">Referencia</td>
  46.     <td class="enlace10">Descripción</td>
  47.     <td class="enlace10">Cantidad</td>
  48.    
  49.    
  50.   </tr>
  51.  
  52. <tr>
  53.   <td ><input name="button" type=button onclick="agregar()" value="+" ></td>
  54.   <td ><input name="button" type=button onclick="borrarUltima()" value="-" ></td>
  55.     <td ><input name="almacen2" id="sel1" type="text" size="4/></td>
  56.     <td><input name="referencia2" type="text" size="10/></td>
  57.     <td><input name="descripcion2" type="text" size="30/></td>
  58.     <td><input name="cantidad2" type="text" size="4/></td>
  59.  
  60.  
  61.   </tr>
  62. </table>
  63. <input type="submit" value="datos post"/>
  64. </form>
  65. </body>
  66. </div>
  67. </html>





delphi
  1. <?php
  2. print_r($_POST);
  3.  
  4. ?>



por favor su ayuda.. gracias.


  • 0

#4 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 18 mayo 2014 - 07:35

gracias , lo solucione con un for, y dentro del for con un if para saber si viene la variable via post, y el numero me lo va incrementando la variable $i del for.

gracias
  • 0

#5 josichi

josichi

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 08 agosto 2016 - 10:34

Buenos dias, como hago para cada fila que agregue manualmente con ese mismo codigo se guarden en ese mismo orden en la base de datos ? Gracias, espero sus ayudas.


  • 0