Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2012, 22:29
Avatar de kimmy
kimmy
 
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Busqueda Guardar datos de input text dinamicos

Hola amigos:

Estoy tratando de guardar unos datos en mysql que se almacenan en input text generados por javascript. El problema es que solo me guarda los datos de la ultima fila.

Cómo puedo hacer para que los almacene todos???

Este es el código que los genera:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <script src="js/jquery.js" type="text/javascript"></script>
  4. <script type="text/javascript">
  5. $(document).ready(function(){
  6.    
  7. });
  8.  
  9. function agregarFila(obj){
  10.         $("#cant_campos").val(parseInt($("#cant_campos").val()) + 1);
  11.         var oId = $("#cant_campos").val();
  12.         var tipo_contacto = $("#selTipo_contacto").val();
  13.         var persona_contacto = $("#txtPersona_contacto").val();
  14.         var telefonos = $("#txtTelefonos").val();
  15.         var correo_contacto = $("#txtCorreo_contacto").val();
  16.  
  17.         var strHtml1 = "<td>" + tipo_contacto + '<input type="hidden" id="hdnTipo_contacto_' + oId + '" name="hdnTipo_contacto_' + oId + '" value="' + tipo_contacto + '"/></td>';
  18.         var strHtml2 = "<td>" + persona_contacto + '<input type="hidden" id="hdnPersona_contacto_' + oId + '" name="hdnPersona_contacto_' + oId + '" value="' + persona_contacto + '"/></td>' ;
  19.         var strHtml3 = "<td>" + telefonos + '<input type="hidden" id="hdnTtelefonos_' + oId + '" name="hdnTelefonos_' + oId + '" value="' + telefonos + '"/></td>' ;
  20.         var strHtml4 = "<td>" + correo_contacto + '<input type="hidden" id="hdnCorreo_contacto_' + oId + '" name="hdnCorreo_contacto_' + oId + '" value="' + correo_contacto + '"/></td>' ;
  21.         var strHtml5 = '<td><img src="images/delete.png" width="16" height="16" alt="Eliminar" onclick="if(confirm(\'Realmente desea eliminar este detalle?\')){eliminarFila(' + oId + ');}"/>';
  22.         strHtml5 += '<input type="hidden" id="hdnIdCampos_' + oId +'" name="hdnIdCampos[]" value="' + oId + '" /></td>';
  23.         var strHtmlTr = "<tr id='rowDetalle_" + oId + "'></tr>";
  24.         var strHtmlFinal = strHtml1 + strHtml2 + strHtml3 + strHtml4 + strHtml5;
  25.         //tambien se puede agregar todo el HTML de una sola vez.
  26.         //var strHtmlTr = "<tr id='rowDetalle_" + oId + "'>" + strHtml1 + strHtml2 + strHtml3 + strHtml4 + strHtml5 + strHtml6 +"</tr>";
  27.         $("#tbDetalle").append(strHtmlTr);
  28.         //si se agrega el HTML de una sola vez se debe comentar la linea siguiente.
  29.         $("#rowDetalle_" + oId).html(strHtmlFinal);
  30.         return false;
  31.     }
  32.     function eliminarFila(oId){
  33.         $("#rowDetalle_" + oId).remove();  
  34.         return false;
  35.     }
  36.  
  37.     function cancelar(){
  38.         $("#tbDetalle").html("");  
  39.         return false;
  40.     }
  41. </script>
  42. </head>
  43. <body>
  44. <form name="proyecto" id="proyecto" action="prueba6.php" method="post">
  45.     <input type="hidden" id="num_campos" name="num_campos" value="0" />
  46.     <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
  47. <fieldset>
  48. <tr>
  49.     <td>Tipo de Contacto:</td>
  50.     <td><select name="selTipo_contacto[]" id="selTipo_contacto" class="textbox txtFec">
  51.       <option value="Informacion general">Informacion general</option>
  52.       <option value="Acuerdo comercial">Acuerdo comercial</option>
  53.       <option value="Reservaciones">Reservaciones</option>
  54.       <option value="Notificacion de pagos">Notificacion de pagos</option>
  55.       <option value="Actualización de tarifas">Actualizacion de tarifas</option>
  56.     </select></td>
  57.     <td>Persona Contacto:</td>
  58.     <td><input name="txtPersona_contacto[]" type="text" id="txtPersona_contacto" size="10" class="textbox" /></td>
  59.     <td>Telefonos:</td>
  60.     <td><input name="txtTelefonos[]" type="text" id="txtTelefonos" size="10" class="textbox" /></td>
  61.     <td>Correo Contacto:</td>
  62.     <td><input name="txtCorreo_contacto[]" type="text" id="txtCorreo_contacto" size="10" class="textbox" /></td>
  63.   </tr>
  64.  
  65.    
  66. </fieldset>
  67. <div class="button_div">    
  68.     <input type="reset" id="btnCancel" name="btnCancel" value="Cancelar" class="buttons_CANCEL" onClick="cancelar();" />
  69.     <input type="button" id="btnAgregar" name="btnAgregar" value="Agregar Persona" class="buttons_aplicar" onClick="agregarFila(document.getElementById('cant_campos'));" />
  70.     <input type="submit" id="btnAgregar" name="btnAgregar" value="Guardar" class="buttons_OK"  />
  71. </div>
  72. <fieldset class="fieldset">
  73.     <legend class="legend">
  74.         Detalle de Personas
  75.     </legend>
  76.     <div class="clear"></div>
  77.     <div id="form3" class="form-horiz">
  78.     <table width="100%" id="tblDetalle" class="listado">
  79.         <thead>
  80.             <tr>
  81.                 <th>Tipo de Contacto</th>
  82.                 <th>Persona Contacto</th>
  83.                 <th>Telefonos</th>
  84.                 <th>Correo Contacto</th>
  85.                 <th>Accion</th>
  86.             </tr>
  87.         </thead>
  88.         <tbody id="tbDetalle">
  89.         </tbody>
  90.     </table>
  91.     </div>
  92. </fieldset>
  93. </form>
  94. </body>
  95. </html>

y aqui los guardo:

Código PHP:
Ver original
  1. include ('funciones/db.php');
  2.  
  3. $conexion = db_connect();
  4.   if (!$conexion)
  5.    return 0;
  6.  
  7. $num_campos= $_POST['num_campos'];
  8. $cant_campos= $_POST['cant_campos'];
  9.  
  10. $tipo_contacto = $_POST['selTipo_contacto'];
  11. $persona_contacto = $_POST['txtPersona_contacto'];
  12. $telefonos = $_POST['txtTelefonos'];
  13. $correo_contacto = $_POST['txtCorreo_contacto'];
  14.  
  15. $numRows = count($cant_campos);
  16.  
  17.     for($i=0; $i<$numRows; $i++) {
  18.           $sql_ins2 = mysql_query("INSERT INTO contactos (id_posada, tipo_contacto, persona_contacto, telefonos, correo_contacto) VALUES ('$id_posada', '".$_POST['selTipo_contacto'][$i]."', '".$_POST['txtPersona_contacto'][$i]."', '".$_POST['txtTelefonos'][$i]."', '".$_POST['txtCorreo_contacto'][$i]."')") or die ("Error en Insert : ".mysql_error());
  19.     }

Gracias por su ayuda...
__________________
Caminando con el corazón partío