【发布时间】:2017-11-29 23:15:09
【问题描述】:
我有一个 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);
?>
【问题讨论】:
-
如果在浏览器中打开
http://myserver.com/myscript.php,输出是什么? -
这是一个数组,然后是 json 编码。首先在我的 php 中,我有 $result = array();在我的脚本结束时,我有 var_dump( $result ); echo json_encode($result);
-
我问过你关于输出的问题,因为它应该是一个有效的 JSON,所以如果你转到
http://myserver.com/myscript.php,你应该会看到类似:{"key":"value"}。如果您有var_dump,那么这可能是导致问题的原因,因为您正在打印类似:array(1) { ["key"]=> string(5) "value" }{"key":"value"}这不是有效的 JSON -
是的,我正在打印您所说的内容。 { ["key"]=> string(5) "value" } 但是使用 echo json_encode 我正在打印正确的数组格式 ["value", "value2"]
-
阅读我在回答中写的评论
标签: javascript arrays json ajax xmlhttprequest