我有这段代码:
$.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____________ |
| | 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说,但我错过了一些关键的东西,我不确定它是什么。我已经在网上寻找答案(因为我确实想要了解这一点),但我不知道要搜索的确切内容,以找到可以教我的概述或教程。
答案 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,
。您还可以附加带有时间戳或随机值的参数。