将AJAX成功函数填充到另一页上的div中

时间:2014-10-31 20:23:19

标签: javascript php jquery ajax

我有这段代码:

$.ajax({
        type: 'POST',
        url: form.attr('action'),
        data: formData,
        success: function() {
        $.get("getuser.php?q="+encodeURIComponent(pmName), function(data) {
          $('txtHint').html(data);        
        });
        }
    });

并且它会处理,但它没有按我的意愿行事。

我已经在我的php页面上创建了一个cookie,然后将其带入了JavaScript页面,最终结果就像getuser.php?q=John%Doe

这里的布局现在是什么样的。用户首先加载ajaxtest.php,然后使用下拉菜单选择一个用户,该用户使用getuser.php?q=John%Doe

中的信息填充到ajaxtest.php上的DIV中。


|_______________________________|
|          ajaxtest.php         |
|                               |
|   _______#DIV____________     |
|   |    getuser.php       |    |
|   |                      |    |
|   |                      |    |
|   |______________________|    |
|_______________________________|

当我在getuser.php上执行某些操作时,上面的AJAX调用允许我运行包含所有SQL查询的update.php,,而不会将用户重定向到此update.php页面。凉。然而,我需要的是用户在成功提交后立即刷新数据库的更改。

我试着这样做:

success: function() {
        $.get("getuser.php?q="+encodeURIComponent(pmName), function(data) {
          $('txtHint').html(data);        
        });
        }

这是在另一篇文章中向我建议的,但我不知道这段代码是如何引用这个txtHint DIV所在的ajaxtest.php页面的。我觉得我理解这句话的作用的逻辑(获取getuser.php?q=John%Doe页面,然后将其返回到txtHint DIV) - 至少我认为它是什么' s说,但我错过了一些关键的东西,我不确定它是什么。我已经在网上寻找答案(因为我确实想要了解这一点),但我不知道要搜索的确切内容,以找到可以教我的概述或教程。

1 个答案:

答案 0 :(得分:0)

你需要更像这样的东西:

$.ajax({
    type: 'GET',
    url: 'getuser.php',
    data: 
    {
        'q': encodeURIComponent(pmName),
        'r': Math.random()
    },
    cache: false,
    success: function(data) 
    {
      $('txtHint').html(data);        
    }
});

你的术语都错了。你不会刷新"阿贾克斯。 Ajax就像是在浏览器中访问页面,只有Javascript在后端执行此操作,并在data变量中将页面返回给您成功方法。你应该说你"打电话"它或者提出要求"使用ajax到服务器。

就我个人而言,我建议(特别是初学者)不要使用$.get()$.post()方法,而是坚持使用完整的$.ajax()并学习/了解如何将它用于get和帖子。我这样说是因为它有一个更加不言自明的语法。即每个部分的名称后跟一个:然后是部分,而不是只知道将它们放入的顺序。它还会产生更易读的代码。

另外,要解决缓存问题,请在ajax调用中使用cache: false,。您还可以附加带有时间戳或随机值的参数。