Foros del Web » Programando para Internet » PHP »

No carga primer dato

Estas en el tema de No carga primer dato en el foro de PHP en Foros del Web. Saludos amigos. Tengo el código de un select dependiente, al seleccionar algún dato (idiomas), carga los datos en un nuevo select (horarios). Pero no funciona ...
  #1 (permalink)  
Antiguo 02/04/2019, 15:35
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 8 años, 4 meses
Puntos: 0
No carga primer dato

Saludos amigos.

Tengo el código de un select dependiente, al seleccionar algún dato (idiomas), carga los datos en un nuevo select (horarios). Pero no funciona totalmente, el primer dato de la lista no lo toma, a partir del segundo dato funciona bien. Me podrían ayudar a detectar el error? Espero me haga entender. Gracias.

Este es el formulario:

Código HTML:
<html><head> 
<title>Agregar fila de campos DINAMICOS</title> 
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

    $(".soc").change(function(){
            var tr =  $(this).parent().parent();
           //alert($('.soc').val());
            soc = $(this).val();
            $.post("getIdiomas.php", { soc: soc }, 
                         function(data){
                         tr.find("#term").html(data); 
            });
   })
    
    $("#adicional").on('click', function(){
      var row = $("#tabla tbody tr:eq(0)").clone(true).removeClass('fila-fija');
      row.find('.term').empty(); 
      row.appendTo("#tabla tbody")
    });
    
    $(".eliminar").on("click",function(){
      var parent = $(this).closest("tr").remove();
    });

}); 
</script>
   </head>
   <body>
      <table align="center" class="table bg-info" id="tabla">
         <thead>
            <tr>
               <th>IDIOMAS</th>
               <th>HORARIOS</th>
            </tr>
         </thead>
         <tbody>
            <tr class="fila-fija">
               <td>
                  <select class="soc" name="soc[]">
                     <option value="NULL">Seleccionar</option>
                     <option value="1">ingles</option>
                     <option value="2">frances</option>
                     <option value="3">portugues</option>
                  </select>
               </td>
               <td><select name="term[]" class="term" id="term"></select></td>
               <td class="eliminar"><input type="button" value="-"/></td>
            </tr>
         </tbody>
      </table>
      <div class="btn-der"><button id="adicional" name="adicional" type="button" class="btn btn-warning">+</button></div>
   </body>
</html> 
Este es el archivo del segundo select (archivo getIdiomas.php):

Código PHP:
<?php 
include('conexion.php'); 
$soc $_POST['soc']; 
$query="SELECT cod_hor,horario from horario where cod_hor='$soc'";  
$result=$mysqli->query($query); 
$html "<option value=''>Seleccionar</option>"
      
while ((
$fila mysqli_fetch_array($result)) != NULL) { 
$html.= "<option value='".$fila['cod_hor']."'>".$fila['horario']."</option>"

echo 
$html 
?>
  #2 (permalink)  
Antiguo 06/04/2019, 15:15
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 9 años, 11 meses
Puntos: 214
Respuesta: No carga primer dato

Saludo


Pues no entiendo tu problema, ya que he copiado tu código tal cual
y lo implemente, y funciona correctamente.


Hice este pequeño ejemplo en base de datos (pues no pusiste data)


Código MySQL:
Ver original
  1. +---------+---------+
  2. | cod_hor | horario |
  3. +---------+---------+
  4. |       1 | uno     |
  5. |       2 | dos     |
  6. |       1 | once    |
  7. |       2 | doce    |
  8. |       3 | tres    |
  9. |       3 | trece   |
  10. +---------+---------+


Y cuando llamo a la página y selecciono alguno de los idiomas, y se envía el código a la página que realiza la consulta,
alimenta correctamente la segunda lista dependiente, así que no se si ese sea tu problema o cual.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 25/04/2019, 12:59
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: No carga primer dato

Gracias mortiprogramador, ya funciona, ahora tengo otra duda, como cuento las filas que va creando la tabla? Podrias ayudarme?
  #4 (permalink)  
Antiguo 27/04/2019, 23:12
 
Fecha de Ingreso: marzo-2011
Ubicación: Parral
Mensajes: 20
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: No carga primer dato

Puedes agregar un simple contador o usar la función para ello
Código PHP:
Ver original
  1. <?php  
  2. include('conexion.php');  
  3. $soc = $_POST['soc'];  
  4. $query="SELECT cod_hor,horario from horario where cod_hor='$soc'";  
  5. $result=$mysqli->query($query);  
  6.    $row_cnt = mysqli_num_rows($result);  // es te método es méjor
  7. $html = "<option value=''>Seleccionar</option>";  
  8.        $num=0;
  9. while (($fila = mysqli_fetch_array($result)) != NULL) {  
  10. $num++;
  11. $html.= "<option value='".$fila['cod_hor']."'>".$fila['horario']."</option>";  
  12. }  
  13. echo $html ;
  14. echo $num;
  15. echo    $row_cnt;
  16. ?>



La zona horaria es GMT -6. Ahora son las 22:37.