【问题标题】:jQuery dynamic dropdown box ajaxjQuery动态下拉框ajax
【发布时间】:2012-12-07 05:38:53
【问题描述】:

我目前有两个下拉框和一个文本框。

我正在使用数据库查询来填充第一个下拉框,并使用 ajax 来填充第二个下拉框,具体取决于在第一个下拉列表中选择的值。一旦从第二个下拉列表中选择了一个选项,我也会使用 ajax 来填写输入文本框。

我的问题是,使用我当前的代码,当我从第一个下拉列表中选择一个选项时,虽然它确实使用从 ajax 返回的数据填充了第二个下拉框,但我也希望它也可以对输入框进行 ajax 和在第二个下拉值更新的同时返回该值。

     $( "#manufacturerOpts" ).change(function(){
            val1 = $(this).attr("value");
            $.ajax({
               url: "inc/class/data.php",
               type: "POST", 
               data: "manu="+val1,
               cache: false,
               success: function (html1) {   

               $('#modelOpts').html(html1);

               val2 = $("#modelOpts option").attr("value");

              $.ajax({
               url: "inc/class/data.php",
               type: "POST", 
               data: "mod="+val2,
               cache: false,
               success: function (html2) {  
               $('#powerOpts').html(html2);    
               }
              });
                }
              });

    });

    $( "#modelOpts" ).change(function(){
            val1 = $(this).attr("value");
            $.ajax({
               url: "inc/class/data.php",
               type: "POST", 
               data: "mod="+val1,
               cache: false,
               success: function (html1) {  $('#powerOpts').attr("value",html1);  }
              });

            // $("#modelOpts").selectmenu('refresh', true);
    });

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:

    您可以修改您的请求以发送文本框的值以及下拉菜单选项

    $.ajax({
        url: "inc/class/data.php",
        type: "POST", 
        data: "manu="+val1,
        dataType: 'json',
        success: function (data) {
            $('#modelOpts').html(data.modelOpts);
            $('#powerOpts').html(data.powerOpts);    
        }
    });
    

    在您的服务器端代码中,您可以轻松找出modelOpts 下拉列表的第一个选项的值并将其发送

    $data = array('modelOpts' => modelOptsHtml, 'powerOpts' => powerOptsHtml);
    echo json_encode($data);
    

    【讨论】:

    • 您可能还想在data 中发送"mod="+val2
    • @Abhilash 你还没有那个值,正在检索的数据也有它。
    • 天哪。我没有正确阅读代码。我收回我的评论。
    • 我尝试使用您的代码,但收到“dataType: json”的“ReferenceError: json is not defined”错误。请指教。 :)
    • 啊,好吧,我现在不再收到 json 错误,而是将其打印到我的选择字段中:'Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C: \xampp\htdocs\dyn\inc\class\data.php 在第 11 行' 这是我用于第 10、11 和 12 行的内容:` $menu = $model->getMod1($manu); $data('modelOpts' => $menu, 'powerOpts' => $model->getPwrSpecific($menu));回声 json_encode($data); ` 抱歉,我是 stackoverflow 的新手,我不确定如何在 cmets 中格式化代码!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 2017-07-22
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    相关资源
    最近更新 更多