Usé php y jquery. Tengo que generar una etiqueta de selección múltiple dependiendo del valor de la condición. Necesito manipular tanto html, php y jquery usando loop pero no puedo encontrar la respuesta para que esto funcione.
código php html ... Me gusta completar varias etiquetas de selección con diferentes nombres de clase
<?php $count = 2; ?> <div id="comments" hidden><?php echo htmlspecialchars($count); ?></div> <?php for($i = 1; $i <= $count; $i++){ ?> <input type="text" readonly="readonly" class="resone<?php echo $i; ?>" id="resone"> <select name="artist_1" class="part<?php echo $i; ?>" id="part"> <option value="" disabled selected>Select Category</option> <option value="1">medicine</option> <option value="2">shoes</option> </select> <?php }?>jquery Me gusta poner la función onchange en el ciclo para manipular el valor de la clase objetivo
<script> $(function() { var count = document.getElementById("comments").textContent; for (var i = 1; i <= count; i++) { $('.part' + i).change(function() { var display = $('.part' + i).find(":selected").val(); $('.resone' + i).val(display); }) } }) </script>Espero que me puedas ayudar con esto.
Está complicando demasiado las cosas y abusando de la clase al agregarle un contador.
Aquí está mi sugerencia: en realidad puede ignorar las ID y el script no se preocupa por el conteo, solo por la cantidad de ".part" que hay
$(function() { $(".part").on("change", function() { $(this).prev(".resone").val(this.value); }) }) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" readonly="readonly" class="resone" id="resone0"> <select name="artist_1" class="part" id="part0"> <option value="" disabled selected>Select Category</option> <option value="1">medicine</option> <option value="2">shoes</option> </select> <hr/> <input type="text" readonly="readonly" class="resone" id="resone1"> <select name="artist_1" class="part" id="part1"> <option value="" disabled selected>Select Category</option> <option value="1">medicine</option> <option value="2">shoes</option> </select>PHP: - las ID ni siquiera se usan
<?php for($i = 1; $i <= $count; $i++){ ?> <input type="text" readonly="readonly" class="resone" id="resone<?php echo $i; ?>"> <select name="artist_1" class="part" id="part<?php echo $i; ?>"> <option value="" disabled selected>Select Category</option> <option value="1">medicine</option> <option value="2">shoes</option> </select> <?php }?>No necesita usar un bucle for, solo asigne a la selección una clase común y haga lo siguiente:
$(function() { $('.part').change(function() { var display = $(this).val(); $(this).next('.resone').val(display); }) }) Como no puedo ver el elemento con la clase resone , no puedo asegurarme de que $(this).next('.resone').val(display) funcione.
ejemplo de código
$(function() { $('.part').change(function() { var display = $(this).val(); $(this).next('.resone').val(display); }) }) <?php $count = 2; ?> <div id="comments" hidden> <?php echo htmlspecialchars($count); ?> </div> <?php for($i = 1; $i <= $count; $i++){ ?> <select name="artist_1" class="part" > <option value="" disabled selected>Select Category</option> <option value="1">medicine</option> <option value="2">shoes</option> </select> <?php }?>