Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/10/2010, 12:08
Dany_s
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Clonar ultima fila de una tabla con jquery

el id de un elemento html no tiene nada que ver con un id de la base de datos, al enviar un formulario no se envia el id de input sino que se envia el valor del input

Cita:
¿como identificas los nuevos campos si se llaman igual que los ya existentes a la hora de hacer el post?
no entendi, supongo que decis para identificar el atributo name?

lo envias como array, en el name usas los corchetes []
name="nombre[]"
name="nombre[]"

si decis que cuando se entra al form se carga con datos de la bd y esos queres distinguir con los nuevos usa un campo oculto con los id (id de bd), cuando envias sabes que si el campo que contiene el id esta vacio quiere decir que es nuevo, si tiene id ya existe (podes usar para modificar), asi lo mismo podes usar para eliminar, cuando dan click en eliminar fijate si hay algo en el campo de la id, si no hay nada borrar solo de la pantalla pero si tiene borras de la pantalla y de la bd



algo como esto, supone que el primer registro que tiene lo trajiste de la bd, tiene en el input hidden id 1
Código PHP:
Ver original
  1. <html>
  2. <head>
  3.     <title>Pruebas</title>
  4. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  5. <script>
  6. $(function(){
  7.  
  8.     tabla = $('#tabla');
  9.     tr = $('tr:first', tabla);
  10.     $('#agregarFila').live('click', function (){
  11.         tr.clone().appendTo(tabla).find(':text, :hidden').val('');
  12.     });
  13.  
  14.     $(".eliminarFila").live('click', function (){
  15.         var tr = $(this).closest('tr')
  16.         if ( $('[name=id[]]', tr).val() )
  17.             alert("Elimino de la bd con ajax");
  18.         tr.remove();
  19.     });
  20.  
  21. });
  22. </script>
  23. </head>
  24.  
  25. <?php
  26. if (!empty($_GET)){
  27.     $id = $_GET['id'];
  28.     $nombre = $_GET['nombre'];
  29.     foreach ($id as $k => $value) {
  30.         echo "<br />";
  31.         if ($id[$k]){
  32.             echo "El registro " . $id[$k] . " " . $nombre[$k] . " existe.";
  33.         } else {
  34.             echo "El registro " . $nombre[$k] . "  <b>no existe</b>.";
  35.         }
  36.     }
  37. }
  38. ?>
  39.  
  40. <body>
  41.  
  42.     <form action="">
  43.         <table id="tabla">
  44.             <tr>
  45.                 <td><input type="hidden" name="id[]" value="1"></td>
  46.                 <td><input type="text" name="nombre[]" value="nombre1"></td>
  47.                 <td><input type="text" name="apellido[]" value="apellido1"></td>
  48.                 <td><input type="text" name="mail[]" value="email1"></td>
  49.                 <td><input type="button" value="Eliminar" class="eliminarFila"></td>
  50.             </tr>
  51.         </table>
  52.         <input type="button" value="Agregar" id="agregarFila">
  53.         <input type="submit" value="Enviar datos"/>
  54.     </form>
  55.  
  56.  
  57.  
  58. </body>
  59. </html>