HMTL
Código HTML:
<body> <div class="selectContainer" style="float:left"> <select id="theSelect"> <option value="">- Select -</option> <option value="_A1">A1</option> <option value="_A2">A2</option> <option value="_A3">A3</option> </select> </div> <div class="is_A1">A1 <select id="theSelect2"> <option value="">- Select -</option> <option value="_B1">B1</option> <option value="_B2">B2</option> <option value="_B3">B3</option> </select> <div> <div class="is2_B1">B1</div> <div class="is2_B2">B2</div> <div class="is2_B3">B3</div> </div> </div> <div class="is_A2">A2<select id="theSelect3"> <option value="">- Select -</option> <option value="_C1">C1</option> <option value="_C2">C2</option> <option value="_C3">C3</option> </select> <div> <div class="is3_C1">C1</div> <div class="is3_C2">C2</div> <div class="is3_C3">C3</div> </div> </div> <div class="is_A3">A3<select id="theSelect4"> <option value="">- Select -</option> <option value="_D1">D1</option> <option value="_D2">D2</option> <option value="_D3">D3</option> </select> <div> <div class="is4_D1">D1</div> <div class="is4_D2">D2</div> <div class="is4_D3">D3</div> </div></div> </body>
Código:
JS.hidden { display: none; }
Código:
funciona correctamente pero necesito ahora adaptarlo para cargar los datos dinamicamente de una tabla mysql y automatizar el js para tantos select contenga esa seleccion. $('[class^=is]').hide(); $("#theSelect").change(function(){ var value = $("#theSelect option:selected").val(); var theDiv = $(".is" + value); theDiv.slideDown(); theDiv.siblings('[class^=is]').slideUp(); }); $('[class^=is2]').hide(); $("#theSelect2").change(function(){ var value = $("#theSelect2 option:selected").val(); var theDiv = $(".is2" + value); theDiv.slideDown(); theDiv.siblings('[class^=is2]').slideUp(); }); $('[class^=is3]').hide(); $("#theSelect3").change(function(){ var value = $("#theSelect3 option:selected").val(); var theDiv = $(".is3" + value); theDiv.slideDown(); theDiv.siblings('[class^=is3]').slideUp(); }); $('[class^=is4]').hide(); $("#theSelect4").change(function(){ var value = $("#theSelect4 option:selected").val(); var theDiv = $(".is4" + value); theDiv.slideDown(); theDiv.siblings('[class^=is4]').slideUp(); });
como veis la diferencia en el js tan solo es el numero al que llama, #theSelect2/#theSelect3/#theSelect4/#theSelect.... supongo que haciendo algun tipo de bucle con variables se puede hacer que el codigo tanto en php como js se escriba una vez y se lea desde el servidor tantas N veces como campos cargue, no?
es algo que he visto y tengo algunos ejemplos, pero no se como puedo hacerlo por ajax.
como puedo hacerlo?