AJAX通过jQuery更新页面

时间:2015-10-01 00:57:21

标签: javascript jquery ajax

我有一个PHP脚本,它连接到数据库,执行简单的选择并返回一个数字。脚本工作正常,我可以通过添加

来测试它
var registerUser = function(req, res, user){
    user.save(function(err, user){
        if (err) {
            console.error(err);
            return res.status(500).send(err);
        }
        return res.sendStatus(201);
    });
};

到我的表格。但整件事情都行不通。整个页面都得到了刷新,我什么都没有回来。我整天都在试图弄清楚这里有什么问题。有没有人有任何想法?

我的html文件:

action="search_ODtime.php" method="POST"

2 个答案:

答案 0 :(得分:1)

正在发生的事情是您的表单已提交。您可以:a)完全删除表单并将提交按钮更改为常规按钮,然后将事件绑定到按钮而不是表单,或b)阻止表单提交。

jQuery将事件对象传递给每个事件处理程序。事件对象有一个名为preventDefault()的方法,它可以防止默认操作,无论是提交表单还是链接到页面或其他任何内容。

您需要通过为其添加变量将事件传递给函数,然后调用它的preventDefault()方法以防止表单提交并刷新您的页面。

$('#time_search').bind('submit',function(event) {
    event.preventDefault();
    var origin = $('#origin').val();
    var destination = $('#destination').val();
    alert (origin);
    $.ajax({
        type:"POST",
        url:"search_ODtime.php",
        data: 'origin='+origin+'&destination='+destination,
        success: function(data){ $('#search_results').html(data); }
    });
});

答案 1 :(得分:0)

有些事要提及:

<强>首先

通过AJAX提交表单时,您需要阻止浏览器进行默认提交行为,从而避免刷新页面。

('#time_search').bind('submit',function(e) {
     e.preventDefault();

<强>第二

尝试以 JSON格式发送数据,例如。 {“origin”:origin,“destination”:destination}