JavaScript - <select> dinamico

 
Vista:
sin imagen de perfil

<select> dinamico

Publicado por Eduardo (5 intervenciones) el 21/07/2020 22:03:25
Saludos expertos,

Tengo este fragmento de código en mi sección de HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form name="canjeform" action="canjes_agregar.php" method="get">
 
     <div>
        <label for="marcas">Labo./Marca:</label>
        <?php
           echo "<input type='hidden' name='clicod' value='".$clie_codigo."'>";
        ?>
        <select class="clidat" id="marcas" name="marcas" onchange="cargaProductos()">
          <?php echo $cmb_mark; ?>
        </select>
        <select class="clidat" id="productos" name="productos">
        //
        </select>
        <input class="clidat" type='text' name='lote' placeholder='lote...'>
        <input class="clidat" type='number' name='unidades' size='8' maxlength='5' min='1' max='1000' value='1'>
        <input type='submit' value='Agregar'>
     </div>
 
</form>

Y en la sección script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
 
      function cargaProductos() {
         var listaProds = <?php echo json_encode($list_prod);?>;
         var marca = document.getElementById("marcas").value ;
         var n = 0 ;
         document.getElementById("productos").options.length=0;
         for(var i=0;i<listaProds.length;i++) {
            if ( listaProds[i][3] == marca ) {
               document.getElementById("productos").options[n] = new Option( listaProds[i][1] , listaProds[i][0] ) ;
               n++ ;
            }
         }
      }
</script>

La idea es que al seleccionar una marca en el <select> "marcas" se carguen los productos correspondientes a esa marca en el <select> "productos", sin embargo no me funciona. Por si sirve tambien cargo el segmento del código PHP en el que se cargan los dos arrays $list_mark y $list_prod:

1
2
3
4
5
6
7
8
9
10
11
12
// Se cargan los productos
$prod_csv   = 'lista.csv' ;
$list_prod  = csv_to_array( $prod_csv ) ;
 
// Se cargan las marcas
$mark_csv   = 'marcas.csv' ;
$list_mark  = csv_to_array( $mark_csv ) ;
foreach ( $list_mark as list($mrk_cod,$mrk_nom,$mrk_cnj) ) {
    if ( $mrk_cnj != 'SIN CANJE' ) {
        $cmb_mark .=" <option value='".$mrk_cod."'>".$mrk_nom." -> ".$mrk_cnj."</option>";
    }
}

Agradeceré su valiosa ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Eduardo
Val: 23
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

<select> dinamico

Publicado por Eduardo (4 intervenciones) el 23/07/2020 02:43:19
Saludos,

Comunicarles que ya lo resolví con Jquery. Ese código JavaScript simplemente no me funcionaba.

Cordiales saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar