使用Ajax将Bidimensional Array从Php发送到Javascript

时间:2017-03-17 12:20:03

标签: javascript php jquery arrays ajax

我想通过ajax将这个php数组传递给Javascript

这是我的main.php文件,其中包含数组:

$entries = ldap_get_entries($ldap, $sr);
    for ($i=0; $i<$entries["count"]; $i++)
    {
      if (isset($entries[$i]["cn"][0])) {
        $res [$i][0]=$entries[$i]["cn"][0];
      }else {
        $res [$i][0]="";
      }
      if (isset($entries[$i]["ipphone"][0])) {
        $res [$i][1]=$entries[$i]["ipphone"][0];
      }else {
        $res [$i][1]="";
      }
      if (isset($entries[$i]["telephonenumber"][0])) {
        $res [$i][2]=$entries[$i]["telephonenumber"][0];
      }else {
        $res [$i][2]="";
      }
      if (isset($entries[$i]["mobile"][0])) {
        $res [$i][3]=$entries[$i]["mobile"][0];
      }else {
        $res [$i][3]="";
      }
      if (isset($entries[$i]["homephone"][0])) {
        $res [$i][4]=$entries[$i]["homephone"][0];
      }else {
        $res [$i][4]="";
      }
       if (isset($entries[$i][""][0])) {
        $res [$i][5]=$entries[$i][""][0];
       }else {
        $res [$i][5]="";
      }
      if (isset($entries[$i]["description"][0])) {
        $res [$i][6]=$entries[$i]["description"][0];
      }else {
        $res [$i][6]="";
      }
      if (isset($entries[$i]["mail"][0])) {
        $res [$i][7]=$entries[$i]["mail"][0];
      }else {
        $res [$i][7]="";
      }
      if (isset($entries[$i]["facsimiletelephonenumber"][0])) {
        $res [$i][8]=$entries[$i]["facsimiletelephonenumber"][0];
      }else {
        $res [$i][8]="";
      }
    }
ldap_close($ldap);

这是我的main.js文件,我想用ajax获取数组

var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                array = JSON.parse(this.responseText);
            }
        };
        xmlhttp.open("GET", "main.php", true);
        xmlhttp.send();

我的想法是使用数组工作,但我

for (var i = 0; i < res.length; i++) {
        $("#tabla").append("<tr class='usuario'></tr>");
        $(".usuario:last").append("<td class='Nombre'>" + res[i][0] + "</td>");
        $(".usuario:last").append("<td class='ExtFij'>" + res[i][1] + "</td>");
        $(".usuario:last").append("<td class='NumFij'>" + res[i][2] + "</td>");
        $(".usuario:last").append("<td class='ExtMov'>" + res[i][3] + "</td>");
        $(".usuario:last").append("<td class='NumMov'>" + res[i][4] + "</td>");
        $(".usuario:last").append("<td class='TalDel'>" + res[i][5] + "</td>");
        $(".usuario:last").append("<td class='Cargo'>" + res[i][6] + "</td>");
        $(".usuario:last").append("<td class='CorSol'>" + res[i][7] + "</td>");
        $(".usuario:last").append("<td class='CorVent'>" + res[i][8] + "</td>");
    }

主要问题是我还在学习如何使用ajax,我尝试了很多方法,但我没有得到任何解决方案 提前致谢

编辑1:

var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                array = JSON.parse(this.responseText);
                alert("1 " + array[0][0]);
            }
        };
        xmlhttp.open("GET", "main.php", true);
        xmlhttp.send();
        alert("2 " + array[0][0]);

1 个答案:

答案 0 :(得分:0)

转换JSON中的数组输出并将其发送到使用AJAX,并且您还必须定义内容类型为JSON。

你也可以使用jquery ajax,它对于请求响应非常简单。

$.ajax({
    type: "POST",
    dataType: 'json',
    url:"URL here",
    success: function(data) // response 
    {}
});