sql >> Base de Datos >  >> RDS >> Mysql

Cambiar el valor del campo de entrada cuando el usuario selecciona la opción del cuadro de selección

El problema no está en su solicitud de ajax, sino en los selectores de jquery que usa. En jquery $('.value') significa todos los elementos DOM con un "valor" de clase. Así que $(".price") seleccionará TODOS los elementos con un "precio" de clase, pero no veo ninguno de ellos. Para seleccionar algo por su nombre tienes que usar $('input[name=price]') . Esto seleccionará todas las entradas con el nombre "precio". Para seleccionar todas las entradas cuyo nombre comience con el precio, use $('input[name^=price]') . La solución a su problema probablemente sea colocar el elemento SELECT y INPUT en un contenedor, y seleccionar solo la ENTRADA correspondiente.

<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>

Violín:http://jsfiddle.net/8rsxay8q/1/