0

我正在发出 jquery 发布请求以从服务器获取部分 html 代码。服务器 get_info.php 上有一个文件,它为不同的要求打印 html 代码。我正在使用以下代码来执行此操作:

function check(inf_type) {
    $.ajax({
        type: 'POST',
        url: "get_info.php",
        data: { "sequence_no" : 1 },
        success: function(data) {
            // how can i use value of variable "inf_type" here.
            // here, the variable "data" contains HTML code.
        },
        dataType: 'text'
    });
}

函数 check() 接受一个参数inf_type,其中包含随机字符串,服务器根据该字符串识别要打印的 html 代码。现在,我想根据这个inf_type处理 POST 响应。如何在 POST 响应函数中访问inf_type变量的值?函数 check() 被更频繁地调用,这就是为什么我不能将inf_type变量值放在任何全局变量中。我能做些什么来实现这一目标?请指导我。提前致谢。

4

4 回答 4

1

您可以在 Success 函数中使用 info_type 变量。参数 info_type 的范围仍然存在于您的成功函数中。

于 2012-05-25T05:16:22.390 回答
1

您可以在成功或错误函数中直接使用该变量。

function check(inf_type) {
    $.ajax({
        type: 'POST',
        url: "get_info.php",
        data: { "sequence_no" : 1 },
        success: function(data) {
            alert(inf_type); //inf_type is available here.
        },
        dataType: 'text'
    });
}
于 2012-05-25T05:17:36.433 回答
1

您可以通过inf_type函数的参数访问它check()

function check(inf_type) {
    $.ajax({
        type: 'POST',
        url: "get_info.php",
        data: { "sequence_no" : 1 },
        success: function(data) {
            if (inf_type == 0) {
                // do something with data
            } else {
                // do something else
            }
        },
        dataType: 'text'
   });

}

之所以可行,是因为内部函数(成功回调)可以访问外部函数(检查)中的变量。有关更多详细信息,请参阅此答案:https ://stackoverflow.com/a/111200/69868

编辑 这假定 inf_type 在每次调用check(). 详细信息在上面提到的链接中进行了解释。

于 2012-05-25T05:17:53.733 回答
0

首先,您必须将inf_type发送到服务器以获得特定值才能返回,如下所示:

function check(inf_type) {
 $.ajax({
    type: 'POST',
    url: "get_info.php",
    data: { "sequence_no" : 1, whatToSearch : inf_type }, // i added
    success: function(data) {
         //$(selector).html(data);//where you want to show the data
        // how can i use value of variable "inf_type" here.
        // here, the variable "data" contains HTML code.
    },
    dataType: 'text'
 });
}
于 2012-05-25T05:16:41.133 回答