如何在JS / jQuery函数中使用返回的AJAX数据

时间:2014-05-16 14:40:16

标签: javascript jquery ajax

我有AJAX(我认为)从服务器调用返回数据。

function showCustomer(str) {
    var xmlhttp;
    if (str=="") {
        document.getElementById("txtHint").innerHTML="";
        return;
    }

    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "getcustomer3.asp?q=" + str, true);
    xmlhttp.send();
}

电话会回复:

<script>var CC2=101;var CC4=105;</script>

101&amp; 105是我的数据库中的数据。

我在页面中有一个函数返回数据。这是功能:

function unhideCC() {
    $("#" + CC2).show();
    $("#" + CC4).show();
}

我从按钮onClick事件调用该函数,我等待单击所述按钮,直到返回数据后,我认为这样可行。

我正在努力将变量写回页面以加载到函数中。我有一种强烈的感觉,我会以完全错误的方式解决这个问题。有什么指示让我走上正确的道路吗?

提前致谢!

编辑:这是返回值的代码:

response.write("<script>")
dim counter: counter = 0
do until rs.EOF
  for each x in rs.Fields
    counter = counter + 1
    'Use Mod() to check counter is even
    If counter Mod 2 = 0 Then response.write "var CC" & counter & "=" & x.value & ";"
  next
  rs.MoveNext
loop
response.write("")
response.write("</script>")

1 个答案:

答案 0 :(得分:2)

首先,您的Web服务器不能返回json结构而不是:

<script>var CC2=101;var CC4=105;</script>

作为json,它看起来像这样:

{
   "CC2" : 101,
   "CC4" : 105
}

访问这些变量会更容易。否则,您需要解析原始数据结构以提取信息或使用更加丑陋的eval(..)

使用JQUERY你的ajax调用看起来像这样:

$.ajax({
    type: "GET",
    url: "someurl",
    datatype: "json",
    data: ?,
    success: function(jsonServerData){

        var CC2 = jsonServerData.CC2;
        var CC4 = jsonServerData.CC4;

    },
    error: function(status, xht, err){
    }
});

参考Jquery ajax documentation