使用Javascript获取PHP数据并将其分配给数组

时间:2017-06-27 01:46:39

标签: javascript arrays json ajax xmlhttprequest

我有一个PHP脚本,它从服务器收集数据并将其显示在一个数组中,然后显示为带有该函数的json。

echo json_encode($result);

现在我想用我的javascript访问该数组并显示它。它应该作为数组保存在var中,因此它应该如下所示:

 data = [ "xxxx" , "ssss",];

但我想我可以简单地输入我的函数来获取数组数据,所以它是:

data = myfunction ;

到目前为止我已尝试过:

 function reqListener () {
     console.log(this.responseText);
         }

        var oReq = new XMLHttpRequest(); //New request object
      oReq.onload = function() {


       };
        oReq.open("get", "http://myserver.com/myscript.php", true);

oReq.send();

function getdata(url) {
jQuery.ajax(
        {
            type: "GET",
            url: "http://myserver.com/myscript.php/",
            dataType: "text",
            success: function (response) {
                var JSONArray = jQuery.parseJSON(response);
                connsole.log(JSONArray);
                }
        });
    }

但似乎没有任何效果,我会被展示出来并且未定义'而不是我的阵列。 如果有人对此有一些想法并且可以帮助我,那真的很棒。

编辑: 因为我们无处可去,所以我的PHP代码:

<?php 
 error_reporting(0);
 $html = file_get_contents("url here");

$dom = new DOMDocument();
$dom->loadHTML($html);

 $tbodyRows = $dom->getElementsByTagName( 'tbody' )
             ->item( 0 ) // grab first tbody
             ->getElementsByTagName( 'tr' );

$result = array();
foreach( $tbodyRows as $tbodyRow )
{
  $result[] = $tbodyRow->getElementsByTagName( 'td' )
                     ->item( 2 ) // grab 3rd column
                     ->nodeValue;
 }


echo json_encode($result);
 ?>

2 个答案:

答案 0 :(得分:1)

我之前做过类似的事情。我将描述它,我希望它能帮助你。

在下面的代码(get_categories.php)中,我正在从数据库中检索数据并将它们添加到数组中。然后通过编码作为JSON返回它。

$sql = "SELECT category_name FROM category;";
$dataArray = [];
$result = $connection->query($sql);
if ($result) {
    while ($row = $result->fetch_assoc()) {
        $dataArray[] = $row;
    }
    echo json_encode($dataArray);
}

然后在我的Javascript代码中,我可以获得如下数据。

$.ajax({
    url: "/get_categories.php",
    type: "GET",
    dataType: "json",
    success: function (categories) {
        for (var i = 0; i < categories.length; i++) {
            console.log(categories[i]);
        }                
    },
    error: function (jqXHR, textStatus, errorThrown) {
        // Error handling code
    }
});

答案 1 :(得分:1)

试试这段代码:

function getdata(url) {
  console.log('Started');
  jQuery.ajax({
    type: "GET",
    url: "http://myserver.com/myscript.php",
    dataType: "text",
    error: function (xhr) {
      console.log('Error',xhr.status);
    },
    success: function (response) {
      console.log('Success',response);
    }
  });
}

打开浏览器的控制台,让我知道它的内容。如果您没有看到ErrorSuccess,那么您的代码实际上并未执行