Arj*_*jan 2 jquery xmlhttprequest
在阅读了很多帖子和jQuery文档之后,我的第一个问题...... jQuery新手......
在我的项目中,我有一个带有jQuery Ajax调用的几个过滤器的列,以减少main.php中显示的poduct数量.工作正常,但在例如排序结果或在响应文件main.php中单击分页后,我需要能够使用main.php的最后一次Ajax调用的$ _GET参数在filter-column中执行一个新的filter-action ...这些参数在Firebug选项卡中显示正常 - 标签XHR - 选项卡参数....
但我找不到一种方法来检索参数并将它们放在我的函数中,该函数触发Ajax调用:
function updateStatus(content_show, data) {
jQuery.ajax({
method: "get",
url: content_show,
data: data,
beforeSend: function(){
jQuery("#target").html('<p><img src="images/ajax_load.gif" /></p>');
}, //show loading just when link is clicked
success: function(html) {
// update status element
jQuery('#target').show("slow");
jQuery('#target').html(html);
}
});
}
Run Code Online (Sandbox Code Playgroud)
在我的过滤器文件中,我有一个功能来检查和取消选中复选框并启动ajax调用:
function check_them(obj,URL) {
var getstr = "";
var man_id_selected ="";
for (i=0; i<obj.getElementsByTagName("input").length; i++) {
if (obj.getElementsByTagName("input")[i].type == "checkbox") {
if (obj.getElementsByTagName("input")[i].checked) {
getstr = "" + obj.getElementsByTagName("input")[i].name + "=";
man_id_selected += obj.getElementsByTagName("input")[i].value + "_";
} else {
<!-- getstr += obj.getElementsByTagName("input")[i].name + "=&";-->
}
}
}
getUrlStatus('main.php', function(status) { // try to find $_GET parameters of main.php
alert(status);
});
updateStatus(URL, getstr+man_id_selected);
}
Run Code Online (Sandbox Code Playgroud)
在这里,我还试图找到XHR参数:
function getUrlStatus(url, callback) {
jQuery.ajax({
url: url,
complete: function(xhr) {
callback(xhr.status);
}
});
}
Run Code Online (Sandbox Code Playgroud)
但后者当然只会返回状态200而不是Paramters ....
我非常感谢任何帮助和评论!
阿尔扬
编辑
经过几天的阅读和测试后,我几乎通过更改原始PHP代码和函数来解决问题,以便通过回调正确格式化函数updateStatus:
function updateStatus(url, base_url, new_parameters, old_parameters) {
jQuery.ajax({
method: 'get',
url: base_url,
data: new_parameters,
beforeSend: function(){
jQuery("#target").html('<p><img src="images/ajax_load.gif" /></p>');
}, //show loading just when link is clicked
complete: function(){
jQuery("#target").hide("fast");
}, //stop showing loading when the process is complete
success: function(html) {
// update status element
jQuery('#target').show("slow");
jQuery('#target').html(html);
callback(this.url)
}
});
}
Run Code Online (Sandbox Code Playgroud)
...现在我只有轻微的问题重新启动并在PHP中调用$ url的新url.我将详细说明并可能发布一个新主题.
无论如何Tnx!
为了将来参考,如果你使用jQuery 1.4+,成功函数实际上接受3个参数,它只是后两个是可选的,data通常是唯一需要的.
success(data,textStatus,XMLHttpRequest):功能
如果请求成功则调用的函数.该函数传递三个参数:从服务器返回的数据,根据'dataType'参数格式化; 描述状态的字符串; 和XMLHttpRequest对象(从jQuery 1.4开始提供).这是一个Ajax事件.
因此,下次如果您需要获取有关XHR响应的更多信息,可以设置成功函数,如下所示:
success: function(data, status, xhr) {
// tests with status and xhr, etc...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8053 次 |
| 最近记录: |