使用AJAX进行多项选择而不使用提交按钮

时间:2016-02-04 16:01:52

标签: javascript php jquery html ajax

好吧,现在我有一个有两个选择按钮的页面。一旦设置了它们,我希望页面自动更新。然后,每当选择新选项时,页面将保持自动更新。这是我的HTML:

<form action="" method="POST" id = "multiple">
    <select name="op" id="op"> 
        <?php
            require('C:\www\php\connect.php'); 
            require('C:\www\php\stuff1.php'); // populates first select bar
        ?>   
    </select>

    <br>

    <select name="op2" id="op2"> 
        <?
            php require('C:\www\php\stuff2.php'); //populates second select bar
        ?> 
    </select>
</form>

这是我的jQuery BEFORE。现在,有了这个,它将在选择两个项目后自动提交页面:

$(document).ready(function () {
    $('#op,#op2').on('change', function () {
        if ($('#op').val() && $('#op2').val()) {
            $("#multiple").submit();
        }
    });
});

这是我的(不工作)AJAX响应,我想尝试实现我在开始时提到的内容:

$(document).ready(function (e) {
    $('#op,#op2').on('change', function () {
        $("#multiple").submit();
        var url = "C:\www\php\stuff2.php"; 
        alert("show me signs of life"); // show response
        $.ajax({
               type: "POST",
               url: url,
               data: $("#multiple").serialize(),
               success: function(data)
               {
                   alert(data); // show me something
               }
             });

        e.preventDefault();
    }
});

我到底错在哪里?我很确定我的URL情况有点混乱,因为我使用多个php文件来填充框,但我觉得这没关系。如果它有帮助,魔法发生的文件在stuff2.php中,所以这是我所包含的唯一一个。

1 个答案:

答案 0 :(得分:2)

代码:

$("#multiple").submit()

将对当前URL执行HTTP POST请求。如果您正在进行AJAX调用,则不需要它。

只需:

$.ajax({
     type: "POST",
     url: url,
     data: $("#multiple").serialize(),
     success: function(data)
     {
          alert(data); // show me something
     }
});

应该可以正常工作。