Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery用于重置下拉选择菜单,该菜单在一个菜单上工作,但在另一个菜单上工作时使用相同的代码_Php_Jquery_Ajax_Function - Fatal编程技术网

Php Jquery用于重置下拉选择菜单,该菜单在一个菜单上工作,但在另一个菜单上工作时使用相同的代码

Php Jquery用于重置下拉选择菜单,该菜单在一个菜单上工作,但在另一个菜单上工作时使用相同的代码,php,jquery,ajax,function,Php,Jquery,Ajax,Function,我使用以下ajax/jquery/php将数据拉入选择框。在此之后,如果用户对以前的选择框进行了任何更改,我将使用下面的代码重置选择下拉菜单。奇怪的是,如果用户更改了“客户”下拉列表,则会重置所有数量框和所有linetotal计算以及库存下拉列表,但出于某些奇怪的原因,会将相同的功能复制并粘贴到“车辆”下拉列表中,从而清除“数量”文本框,清除linetotal计算,但是保留了stock下拉菜单的选择方式,而不是将其重置为默认值,这与在customer下拉菜单上工作的代码完全相同,可以在更改时重置

我使用以下ajax/jquery/php将数据拉入选择框。在此之后,如果用户对以前的选择框进行了任何更改,我将使用下面的代码重置选择下拉菜单。奇怪的是,如果用户更改了“客户”下拉列表,则会重置所有数量框和所有linetotal计算以及库存下拉列表,但出于某些奇怪的原因,会将相同的功能复制并粘贴到“车辆”下拉列表中,从而清除“数量”文本框,清除linetotal计算,但是保留了stock下拉菜单的选择方式,而不是将其重置为默认值,这与在customer下拉菜单上工作的代码完全相同,可以在更改时重置所有内容

<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
    $('#customer').on('change', function () {
        $('#vehicle').html("<option value=''>Select</option>"); // add this on each call then add the options when data receives from the request
        $.getJSON('select.php', {
            customerId: $(this).val()
        }, function (data) {
            var options = '';
            for (var x = 0; x < data.length; x++) {
                options += '<option value="' + data[x]['id'] + '">' + data[x]['reg'] + ' - ' + data[x]['make'] + ' - ' + data[x]['model'] + '</option>';
            }
            $('#vehicle').html(options);
            $("select").select2();
        });
    });


    $('#customer').on('change', function () {
        $('#qty1').val('');
        $('#linetotal1').text('');
        $("#stock1").val($("#stock1 option:first").val());
        $('#qty2').val('');
        $('#linetotal2').text('');
        $("#stock2").val($("#stock2 option:first").val());
        $('#qty3').val('');
        $('#linetotal3').text('');
        $("#stock3").val($("#stock3 option:first").val());
        $('#qty4').val('');
        $('#linetotal4').text('');
        $("#stock4").val($("#stock4 option:first").val());
        $('#qty5').val('');
        $('#linetotal5').text('');
        $("#stock5").val($("#stock5 option:first").val());
        $('#qty6').val('');
        $('#linetotal6').text('');
        $("#stock6").val($("#stock6 option:first").val());
    });

    $('#vehicle').on('change', function () {
        $('#qty1').val('');
        $('#linetotal1').text('');
        $("#stock1").val($("#stock1 option:first").val());
        $('#qty2').val('');
        $('#linetotal2').text('');
        $("#stock2").val($("#stock2 option:first").val());
        $('#qty3').val('');
        $('#linetotal3').text('');
        $("#stock3").val($("#stock3 option:first").val());
        $('#qty4').val('');
        $('#linetotal4').text('');
        $("#stock4").val($("#stock4 option:first").val());
        $('#qty5').val('');
        $('#linetotal5').text('');
        $("#stock5").val($("#stock5 option:first").val());
        $('#qty6').val('');
        $('#linetotal6').text('');
        $("#stock6").val($("#stock6 option:first").val());
    });

});     
</script>
因此,如果我更改车辆选择,它将清除数量和行总数,但保持库存不变,如果我更改客户的顶部选择,它将使用相同的功能清除选择


顺便说一下,所有的select都使用名为SELECT2的JQUERY插件。

我假设vechicle是一个select标记

$('#vehicle').html(options);
在这一行中,您要将其转换为选项标记,请使用firebug仔细检查HTML

如果您想在select标记上添加值,可以这样做

$('#vehicle').append(options);

抱歉,刚刚看到我要找的$select.select2;这一定是一个注释,而不是回答。通常我在ajax中使用async:false来修复这个问题。因此,我将首先加载HTML,因为情况可能是脚本已经加载,但来自ajax的数据尚未完成,因此没有应用您想要的规则。@hungerpain抱歉,我找不到注释。。我还是新来的。。已编辑。。所以至少我可以回答为什么第一个选择可以正常工作,而第二个不行?问题不在于ajax,而在于jquery重置了下拉列表。