Mysql
 sql >> Base de données >  >> RDS >> Mysql

Modification de la valeur du champ de saisie lorsque l'utilisateur sélectionne l'option dans la zone de sélection

Le problème ne vient pas de votre requête ajax, mais des sélecteurs jquery que vous utilisez. Dans jquery $('.value') signifie tous les éléments DOM avec une classe "valeur". Donc $(".price") sélectionnera TOUS les éléments avec une classe "prix", mais je n'en vois aucun. Pour sélectionner quelque chose par son nom, vous devez utiliser $('input[name=price]') . Cela sélectionnera toutes les entrées avec le nom "prix". Pour sélectionner toutes les entrées dont le nom commence par le prix, utilisez $('input[name^=price]') . La solution à votre problème est probablement de mettre les éléments SELECT et INPUT dans un conteneur, et de sélectionner uniquement l'INPUT correspondant.

<div>
    <select name='pro_name[]'>
    <option value='1'>Pro 1</option>
    <option value='2'>Pro 2</option>
    <option value='3'>Pro 3</option>
    </select>

    <input type='text' name='price[]'>
</div>
<div>
    <select name='pro_name[]'>
    <option value='1'>Pro 1</option>
    <option value='2'>Pro 2</option>
    <option value='3'>Pro 3</option>
    </select>

    <input type='text' name='price[]'>
</div>

<script type="text/javascript">
    var $last_select = null;
    $(document).ready(function(){
        $("select[name^=pro_name]").change(function(){
            $last_select = $(this);
            var id=$(this).val();
            var dataString = 'id='+ id;
            $.ajax
            ({
                type: "POST",
                url: "get_price.php",
                data: dataString,
                cache: false,
                success: function(html)
                    {
                        $('input[name^=price]', $last_select.parent()).val(html);
                    } 
            });
        });
    });
</script>

Violon :http://jsfiddle.net/8rsxay8q/1/