
<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:
Y en la secció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:
Agradeceré su valiosa ayuda.
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


0