Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] formulario no recoje campos

Estas en el tema de formulario no recoje campos en el foro de Jquery en Foros del Web. Hola buenas tengo este formulario en php: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original echo '<div class="modal-header">';     echo    '<button type="button" class="close" data-dismiss="modal">&times;</button>';   ...
  #1 (permalink)  
Antiguo 01/12/2015, 08:23
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
formulario no recoje campos

Hola buenas tengo este formulario en php:
Código PHP:
Ver original
  1. echo '<div class="modal-header">';
  2.     echo    '<button type="button" class="close" data-dismiss="modal">&times;</button>';
  3.     echo    '<h4 class="modal-title">Seleccione Contrato</h4>';
  4.     echo  '</div>';
  5.    
  6. {  
  7.     echo '<div class="modal-body">';  
  8.     echo    '<form  name="formcontract" method="post"  class="form-horizontal">';
  9.     echo    '<div class="form-group">';
  10.     echo        '<label class="col-sm-3 control-label" for="formGroup" id="contract">Contratos</label>';
  11.    
  12.     echo        '<div class="input-group col-sm-7">';
  13.     echo        '<span class="input-group-addon"><span class="glyphicon glyphicon-list-alt"></span></span>';   
  14.     echo        '<select  name="contrato" class="selectboxit" onchange="mostrarValor(this);">';
  15.     echo '<option selected="disabled">Selecciona un Contrato</option>';
  16.     foreach($incidencias as $cust)
  17.     {
  18.             echo '<option value="'.$cust->Num_distribucion.'-'.$cust->Num_dist_venta.'-'.$cust->Num_linea_operacion.'-'.$cust->Num_operacion.'">'.$cust->Num_contrato.' '.$cust->Cdad_disponible.'Kg de '.$cust->NombreProducto.'</option>';
  19.            
  20.     }
  21.            
  22.             echo '</select>';
  23.     echo '</div>';
  24.     echo '</div>';
  25.    
  26.     echo '<div class="col-xs-4">';
  27.     /* echo '<input type="text" class="form-control"  size="5" name="cupo" id="cupo" disabled/>'; */
  28.  
  29.     echo '</div>';
  30.     echo '</div>';
  31.     echo '</div>';
  32.     echo '<div class="col-sm-12">&nbsp;</div>';
  33.     echo '<div class="col-sm-12">&nbsp;</div>';
  34.     echo '<div class="col-sm-12">&nbsp;</div>';
  35.    
  36.    
  37.     /* echo  "Toneladas de "; */
  38. ?>
  39. <link rel="stylesheet" href="assets/css/font-icons/font-awesome/css/font-awesome.min.css"> 
  40.  
  41.  
  42.  
  43. <?php
  44.  
  45.  
  46. echo '<div class="modal-header">
  47.  
  48.  
  49.         <h4 class="modal-title">Autorización de Matrículas</h4>
  50.     </div>
  51. <div class="col-sm-2">&nbsp;</div>
  52. <div class="col-sm-3">&nbsp;</div>
  53.  
  54. <div class="modal-body">
  55.            
  56.      
  57.                     <div class="form-group">
  58.                             <label class="col-sm-3 control-label" for="formGroup">Tractora</label>
  59.                               <div class="input-group col-sm-5">
  60.                                 <span class="input-group-addon"><span class="fa fa-keyboard-o"></span></span>
  61.                               <input class="form-control" type="text" name="matricula" id="formGroup" placeholder="AAA1234">
  62.                              
  63.                             </div>
  64.                         </div> 
  65. <div class="col-sm-12">&nbsp;</div>
  66. <div class="col-sm-12">&nbsp;</div>
  67.                     <div class="form-group">
  68.                             <label class="col-sm-3 control-label" for="formGroup">Remolque</label>
  69.                               <div class="input-group col-sm-5">
  70.                                 <span class="input-group-addon"><span class="fa fa-keyboard-o"></span></span>
  71.                               <input class="form-control" type="text" name="matricular" id="formGroup" placeholder="AAA1234">
  72.                              
  73.                             </div>
  74.                           </div>   
  75. <div class="col-sm-12">&nbsp;</div>
  76. <div class="col-sm-12">&nbsp;</div>                    
  77.                     <div class="form-group">
  78.                             <label class="col-sm-3 control-label" for="formGroup">N.I.F-N.I.E</label>
  79.                               <div class="input-group col-sm-5">
  80.                             <span class="input-group-addon"><span class="fa fa-credit-card"></span></span>
  81.                               <input class="form-control" type="text" name="dni" id="formGroup" placeholder="DNI o PASAPORTE">
  82.                                 </div>
  83.                         </div>
  84. <div class="col-sm-12">&nbsp;</div>
  85. <div class="col-sm-12">&nbsp;</div>                                
  86.                     <div class="form-group">
  87.                             <label class="col-sm-3 control-label" for="formGroup">Conductor</label>
  88.                               <div class="input-group col-sm-5">
  89.                             <span class="input-group-addon"><span class="entypo-user"></span></span>
  90.                               <input class="form-control" type="text" name="xofer" id="formGroup" placeholder="Nombre y Apellido">
  91.                                 </div>
  92.                         </div>
  93. <div class="col-sm-12">&nbsp;</div>
  94. <div class="col-sm-12">&nbsp;</div>
  95.     <div class="form-group">
  96.                             <label class="col-sm-3 control-label" for="formGroup">P.M.A</label>
  97.                               <div class="input-group col-sm-5">
  98.                             <span class="input-group-addon"><span class="entypo-download"></span></span>
  99.                               <select name="pma" id="formGroup" class="selectboxit">
  100.                               <option>40.800</option>
  101.                               <option>41.000</option>
  102.                               <option>44.000</option>
  103.                               </select>
  104.                             </div>
  105.                              
  106.     </div>
  107.     <div class="col-sm-12">&nbsp;</div>
  108.     <div class="col-sm-12">&nbsp;</div>
  109.                         <div class="modal-footer">
  110.                         <input class="btn btn-success" id="enviar" type="submit" value="Enviar" />
  111.                         </div>
  112.                 </form>
  113.                 <div id="respuesta"></div>';
  114.                
  115.                      
  116.  
  117.    
  118. }

el cual tiene un script para hacer submit e imprimir los resultados en el mismo formulario
Código Javascript:
Ver original
  1. <script>
  2. $(function(){
  3.  $("#enviar").click(function(){
  4.  var url = "mira.php"; // El script a dónde se realizará la petición.
  5.     $.ajax({
  6.            type: "POST",
  7.            url: url,
  8.            data: $("#formcontract").serialize(), // Adjuntar los campos del formulario enviado.
  9.            success: function(data)
  10.            {
  11.                $("#respuesta").html(data); // Mostrar la respuestas del script PHP.
  12.            }
  13.          });
  14.  
  15.     return false; // Evitar ejecutar el submit del formulario.
  16.  });
  17. });
  18. </script>

Parece que con esto no recibe los campos
como puedo adjuntarle los campos al serialize
  #2 (permalink)  
Antiguo 01/12/2015, 11:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: formulario no recoje campos

El error está en que intentas tomar al formulario por su nombre como si fuera su id, el cual no existe. Debes hacerlo así:

Código Javascript:
Ver original
  1. data: $("[name=formcontract]").serialize(),

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 02/12/2015, 02:35
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: formulario no recoje campos

PUes sigue igual:
Código PHP:
Ver original
  1. echo '<div class="modal-header">';
  2.     echo    '<button type="button" class="close" data-dismiss="modal">&times;</button>';
  3.     echo    '<h4 class="modal-title">Seleccione Contrato</h4>';
  4.     echo  '</div>';
  5.    
  6. {  
  7.     echo '<div class="modal-body">';  
  8.     echo    '<form  id="formcontract"   class="form-horizontal">';
  9.     echo    '<div class="form-group">';
  10.     echo        '<label class="col-sm-3 control-label" for="formGroup" id="contract">Contratosssss</label>';
  11.    
  12.     echo        '<div class="input-group col-sm-7">';
  13.     echo        '<span class="input-group-addon"><span class="glyphicon glyphicon-list-alt"></span></span>';   
  14.     echo        '<select  name="contrato" class="selectboxit" onchange="mostrarValor(this);">';
  15.     echo '<option selected="disabled">Selecciona un Contrato</option>';
  16.     foreach($incidencias as $cust)
  17.     {
  18.             echo '<option value="'.$cust->Num_distribucion.'-'.$cust->Num_dist_venta.'-'.$cust->Num_linea_operacion.'-'.$cust->Num_operacion.'">'.$cust->Num_contrato.' '.$cust->Cdad_disponible.'Kg de '.$cust->NombreProducto.'</option>';
  19.            
  20.     }
  21.            
  22.             echo '</select>';
  23.     echo '</div>';
  24.     echo '</div>';
  25.    
  26.     echo '<div class="col-xs-4">';
  27.     /* echo '<input type="text" class="form-control"  size="5" name="cupo" id="cupo" disabled/>'; */
  28.  
  29.     echo '</div>';
  30.     echo '</div>';
  31.     echo '</div>';
  32.     echo '<div class="col-sm-12">&nbsp;</div>';
  33.     echo '<div class="col-sm-12">&nbsp;</div>';
  34.     echo '<div class="col-sm-12">&nbsp;</div>';
  35.    
  36.    
  37.     /* echo  "Toneladas de "; */
  38. ?>
  39. <link rel="stylesheet" href="assets/css/font-icons/font-awesome/css/font-awesome.min.css"> 
  40.  
  41.  
  42.  
  43. <?php
  44.  
  45.  
  46. echo '<div class="modal-header">
  47.  
  48.  
  49.         <h4 class="modal-title">Autorización de Matrículas</h4>
  50.     </div>
  51. <div class="col-sm-2">&nbsp;</div>
  52. <div class="col-sm-3">&nbsp;</div>
  53.  
  54. <div class="modal-body">
  55.            
  56.      
  57.                     <div class="form-group">
  58.                             <label class="col-sm-3 control-label" for="formGroup">Tractora</label>
  59.                               <div class="input-group col-sm-5">
  60.                                 <span class="input-group-addon"><span class="fa fa-keyboard-o"></span></span>
  61.                               <input class="form-control" type="text" name="matricula" id="formGroup" placeholder="AAA1234">
  62.                              
  63.                             </div>
  64.                         </div> 
  65. <div class="col-sm-12">&nbsp;</div>
  66. <div class="col-sm-12">&nbsp;</div>
  67.                     <div class="form-group">
  68.                             <label class="col-sm-3 control-label" for="formGroup">Remolque</label>
  69.                               <div class="input-group col-sm-5">
  70.                                 <span class="input-group-addon"><span class="fa fa-keyboard-o"></span></span>
  71.                               <input class="form-control" type="text" name="matricular" id="formGroup" placeholder="AAA1234">
  72.                              
  73.                             </div>
  74.                           </div>   
  75. <div class="col-sm-12">&nbsp;</div>
  76. <div class="col-sm-12">&nbsp;</div>                    
  77.                     <div class="form-group">
  78.                             <label class="col-sm-3 control-label" for="formGroup">N.I.F-N.I.E</label>
  79.                               <div class="input-group col-sm-5">
  80.                             <span class="input-group-addon"><span class="fa fa-credit-card"></span></span>
  81.                               <input class="form-control" type="text" name="dni" id="formGroup" placeholder="DNI o PASAPORTE">
  82.                                 </div>
  83.                         </div>
  84. <div class="col-sm-12">&nbsp;</div>
  85. <div class="col-sm-12">&nbsp;</div>                                
  86.                     <div class="form-group">
  87.                             <label class="col-sm-3 control-label" for="formGroup">Conductor</label>
  88.                               <div class="input-group col-sm-5">
  89.                             <span class="input-group-addon"><span class="entypo-user"></span></span>
  90.                               <input class="form-control" type="text" name="xofer" id="formGroup" placeholder="Nombre y Apellido">
  91.                                 </div>
  92.                         </div>
  93. <div class="col-sm-12">&nbsp;</div>
  94. <div class="col-sm-12">&nbsp;</div>
  95.     <div class="form-group">
  96.                             <label class="col-sm-3 control-label" for="formGroup">P.M.A</label>
  97.                               <div class="input-group col-sm-5">
  98.                             <span class="input-group-addon"><span class="entypo-download"></span></span>
  99.                               <select name="pma" id="formGroup" class="selectboxit">
  100.                               <option>40.800</option>
  101.                               <option>41.000</option>
  102.                               <option>44.000</option>
  103.                               </select>
  104.                             </div>
  105.                              
  106.     </div>
  107.     <div class="col-sm-12">&nbsp;</div>
  108.     <div class="col-sm-12">&nbsp;</div>
  109.                         <div class="modal-footer">
  110.                         <input class="btn btn-success" id="enviar" type="submit" value="Enviar" />
  111.                         </div>
  112.                 </form>
  113.                 <div id="respuesta"></div>';
  114.                
  115.                      
  116.  
  117.    
  118. }
  119.  
  120.     $nopera = $cust->Num_operacion;
  121.     $distventa = $cust->Num_dist_venta;
  122.     $distribucion = $cust->Num_distribucion;
  123.     $numproduct = $cust->Num_producto;
  124.     $product = $cust->NombreProducto;
  125.     $nuclienvendedor = $cust->Num_cliente_vendedor;
  126.     $noclienvendedor = $cust->NombreClienteVendedor;
  127.     $ncontrato = $cust->Num_contrato;
  128.     $cupos = $cust->Cdad_disponible;
  129.     $lineaopera = $cust->Num_linea_operacion;
  130. /*  echo $nopera;
  131.     echo '<br>';
  132.     echo $lineaopera;
  133.     echo '<br>';
  134.     echo $distventa;
  135.     echo '<br>';
  136.     echo $distribucion;
  137.     echo "|||||";
  138.     echo '<br>';
  139.     echo $ncontrato;
  140.     echo '<br>';
  141.      */
  142.  
  143.  
  144. $_SESSION['Num_linea_operacion'] = $lineaopera;
  145. $_SESSION['Cdad_disponible'] = $cupos;
  146. $_SESSION['Num_contrato'] = $ncontrato;
  147. $_SESSION['NombreClienteVendedor'] = $noclienvendedor;
  148. $_SESSION['Num_cliente_vendedor'] = $nuclienvendedor;
  149. $_SESSION['NombreProducto'] = $product;
  150. $_SESSION['Num_producto'] = $numproduct;
  151. $_SESSION['Num_distribucion'] = $distribucion;
  152. $_SESSION['Num_dist_venta'] = $distventa;
  153. $_SESSION['Num_operacion'] = $nopera;
  154.  
  155.  
  156. ?>
  157. <script>
  158. $(function(){
  159.  $("#enviar").click(function(){
  160.  var url = "mira.php"; // El script a dónde se realizará la petición.
  161.  
  162.     $.ajax({
  163.            type: "POST",
  164.            url: url,
  165.            data: $("[name=formcontract]").serialize(), // Adjuntar los campos del formulario enviado.
  166.            success: function(data)
  167.            {
  168.                $("#respuesta").html(data); // Mostrar la respuestas del script PHP.
  169.            }
  170.          });
  171.  
  172.     return false; // Evitar ejecutar el submit del formulario.
  173.  });
  174. });
  175. </script>
y me sigue dando los mismos errores que antes
Código HTML:
Ver original
  1. Notice: Undefined index: contrato in /var/www/html/lab/neon/mira.php on line 34
  2.  
  3. Notice: Undefined offset: 3 in /var/www/html/lab/neon/mira.php on line 34
  4.  
  5. Notice: Undefined offset: 2 in /var/www/html/lab/neon/mira.php on line 34
  6.  
  7. Notice: Undefined offset: 1 in /var/www/html/lab/neon/mira.php on line 34
  8. Num distribucion:
  9. Num Dist de Venta:
  10. Num Linea de Operacion:
  11. Num de Operacion:
  12.  
  13. Notice: Undefined index: matricula in /var/www/html/lab/neon/mira.php on line 48
  14.  
  15.  
  16. Notice: Undefined index: matricular in /var/www/html/lab/neon/mira.php on line 50
  17.  
  18.  
  19. Notice: Undefined index: dni in /var/www/html/lab/neon/mira.php on line 52
  20.  
  21.  
  22. Notice: Undefined index: xofer in /var/www/html/lab/neon/mira.php on line 54
  23.  
  24.  
  25. Notice: Undefined index: pma in /var/www/html/lab/neon/mira.php on line 56
  #4 (permalink)  
Antiguo 02/12/2015, 02:57
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: formulario no recoje campos

Código Javascript:
Ver original
  1. <script>
  2. $("#formcontract").submit(function(e) {
  3.  
  4.     var url = "autorizar.php"; // the script where you handle the form input.
  5.  
  6.     $.ajax({
  7.            type: "POST",
  8.            url: url,
  9.            data: $("#formcontract").serialize(), // serializes the form's elements.
  10.            success: function(data)
  11.            {
  12.                alert(data); // show response from the php script.
  13.            }
  14.          });
  15.  
  16.     e.preventDefault(); // avoid to execute the actual submit of the form.
  17. });
  18. </script>

con este codigo si que los recoje
  #5 (permalink)  
Antiguo 02/12/2015, 09:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: formulario no recoje campos

Seguía mal porque cambiaste el atributo name por id pero ahora intentabas tomar al formulario por el valor de name cuando este ya no existía; en otras palabras, volviste a la misma situación pero con los atributos intercambiados.

Ahora que tomas al formulario por su id (aunque hubiera dado igual si lo hacías por el name), en la línea en la que serializas los datos, puedes usar la palabra reservada this en lugar del selector ya que estás dentro del callback asociado al evento registrado en el formulario.

Código Javascript:
Ver original
  1. ata: $(this).serialize(),

Si deseas, no hagas el cambio, de todos modos seguirá funcionando, pero ahorrarás tiempo ya que no se tendrá que volver a hacer la búsqueda mediante el selector.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: ajax, campos, formulario, input, javascript, php, select, valor
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 20:25.