Ver Mensaje Individual
  #13 (permalink)  
Antiguo 18/06/2012, 10:57
Avatar de kimmy
kimmy
 
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Guardar datos de input text dinamicos

Ahora me guarda las 2 filas pero una solo guarda Array, Array, Array... y la otra si guarda los datos. lo coloqué asi:

Código PHP:
Ver original
  1. function agregarFila(obj){
  2.         $("#cant_campos").val(parseInt($("#cant_campos").val()) + 1);
  3.         var oId = $("#cant_campos").val();
  4.         var tipo_contacto = $("#selTipo_contacto").val();
  5.         var persona_contacto = $("#txtPersona_contacto").val();
  6.         var telefonos = $("#txtTelefonos").val();
  7.         var correo_contacto = $("#txtCorreo_contacto").val();
  8.  
  9.         var strHtml1 = "<td>" + tipo_contacto + '<input type="hidden" id="selTipo_contacto[]' + '" name="selTipo_contacto_' + oId + '" value="' + tipo_contacto + '"/></td>';
  10.         var strHtml2 = "<td>" + persona_contacto + '<input type="hidden" id="txtPersona_contacto[]' + '" name="txtPersona_contacto_' + oId + '" value="' + persona_contacto + '"/></td>' ;
  11.         var strHtml3 = "<td>" + telefonos + '<input type="hidden" id="txtTtelefonos[]' + '" name="txtTelefonos_' + oId + '" value="' + telefonos + '"/></td>' ;
  12.         var strHtml4 = "<td>" + correo_contacto + '<input type="hidden" id="txtCorreo_contacto[]' + '" name="txtCorreo_contacto_' + oId + '" value="' + correo_contacto + '"/></td>' ;
  13.         var strHtml5 = '<td><img src="images/delete.png" width="16" height="16" alt="Eliminar" onclick="if(confirm(\'Realmente desea eliminar este detalle?\')){eliminarFila(' + oId + ');}"/>';
  14.         strHtml5 += '<input type="hidden" id="hdnIdCampos[]' +'" name="hdnIdCampos_" value="' + oId + '" /></td>';
  15.         var strHtmlTr = "<tr id='rowDetalle_" + oId + "'></tr>";
  16.         var strHtmlFinal = strHtml1 + strHtml2 + strHtml3 + strHtml4 + strHtml5;
  17.         //tambien se puede agregar todo el HTML de una sola vez.
  18.         //var strHtmlTr = "<tr id='rowDetalle_" + oId + "'>" + strHtml1 + strHtml2 + strHtml3 + strHtml4 + strHtml5 + strHtml6 +"</tr>";
  19.         $("#tbDetalle").append(strHtmlTr);
  20.         //si se agrega el HTML de una sola vez se debe comentar la linea siguiente.
  21.         $("#rowDetalle_" + oId).html(strHtmlFinal);
  22.         return false;
  23.     }

y en el que guarda asi:

Código PHP:
Ver original
  1. $numRows = count($tipo_contacto);
  2.  
  3.  
  4. for($i = 0; $i <= $numRows; $i++) {
  5.               // Primero necesitamos saber cómo acceder a los campos
  6.               $sufijo  = ($i == 0) ? '' : "_$i";
  7.               // Si es la primera pasada, entonces los campos no tienen sufijo
  8.               // Si $i es mayor que cero, el sufijo es guión bajo, seguido del valor de $i
  9.      
  10.               // Ahora, para acceder a cada campo:
  11.               // En lugar de poner $_POST['txtPersona_contacto'][$i]
  12.               // Debes usar: $_POST['txtPersona_contacto' . $sufijo]
  13.               $sql_ins2 = mysql_query("INSERT INTO contactos (id_posada, tipo_contacto, persona_contacto, telefonos, correo_contacto) VALUES ('$id_posada', '".$_POST['selTipo_contacto'.$sufijo]."', '".$_POST['txtPersona_contacto'.$sufijo]."', '".$_POST['txtTelefonos'.$sufijo]."', '".$_POST['txtCorreo_contacto'.$sufijo]."')") or die ("Error en Insert : ".mysql_error());
  14.         }

el var_dump arroja esto:

Código PHP:
Ver original
  1. array(16) {
  2.   ["num_campos"]=>
  3.   string(1) "0"
  4.   ["cant_campos"]=>
  5.   string(1) "2"
  6.   ["selTipo_contacto"]=>
  7.   array(1) {
  8.     [0]=>
  9.     string(13) "Reservaciones"
  10.   }
  11.   ["txtPersona_contacto"]=>
  12.   array(1) {
  13.     [0]=>
  14.     string(4) "Till"
  15.   }
  16.   ["txtTelefonos"]=>
  17.   array(1) {
  18.     [0]=>
  19.     string(7) "4444444"
  20.   }
  21.   ["txtCorreo_contacto"]=>
  22.   array(1) {
  23.     [0]=>
  24.     string(15) "[email protected]"
  25.   }
  26.   ["btnAgregar"]=>
  27.   string(7) "Guardar"
  28.   ["selTipo_contacto_1"]=>
  29.   string(19) "Informacion general"
  30.   ["txtPersona_contacto_1"]=>
  31.   string(4) "lola"
  32.   ["txtTelefonos_1"]=>
  33.   string(7) "7474512"
  34.   ["txtCorreo_contacto_1"]=>
  35.   string(15) "[email protected]"
  36.   ["hdnIdCampos_"]=>
  37.   string(1) "2"
  38.   ["selTipo_contacto_2"]=>
  39.   string(13) "Reservaciones"
  40.   ["txtPersona_contacto_2"]=>
  41.   string(4) "Till"
  42.   ["txtTelefonos_2"]=>
  43.   string(7) "4444444"
  44.   ["txtCorreo_contacto_2"]=>
  45.   string(15) "[email protected]"
  46. }

esta parte estaba asi:

Código PHP:
Ver original
  1. strHtml5 += '<input type="hidden" id="hdnIdCampos_' + oId +'" name="hdnIdCampos[]" value="' + oId + '" /></td>';

y la puse asi:

Código PHP:
Ver original
  1. strHtml5 += '<input type="hidden" id="hdnIdCampos[]' +'" name="hdnIdCampos_" value="' + oId + '" /></td>';

no entiendo la falla
__________________
Caminando con el corazón partío