我试图在javascript中将数组从PHP发送到Ajax。 我在PHP文件“myphp.php”中的数组是$ parts并且是multidimentional。
我已经使用了echo $ parts和echo json_encode($ parts)none对我来说都无效。 $ parts有2行2列,这是var_dump:
的结果array(4) { [0]=> array(3) { [0]=> string(13) "1350655763.12" [1]=> string(2) "25" [2]=> string(1) " " } [1]=> array(3) { [0]=> string(13) "1350655763.12" [1]=> string(2) "26" [2]=> string(0) "" } [2]=> array(1) { [0]=> string(0) "" } [3]=> array(1) { [0]=> string(0) "" } }
我想将孔数组发送到Ajax,但只是在网页上显示$ parts [0] [0]。 当我使用
echo $parts
在myphp.php文件中:“数组”名称显示在网页上 当我使用
echo json_encode($parts)
myphp.php文件中的:显示数组的所有组件而不是第一个组件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script>
function getXMLHttp()
{
var xmlHttp
try
{
//Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
//Internet Explorer
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
alert("Your browser does not support AJAX!")
return false;
}
}
}
return xmlHttp;
}
function MakeRequest()
{
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
var parts=JSON.parse(xmlHttp.responseText);
document.getElementById('ResponseDiv').innerHTML = parts[0][0];
}
}
xmlHttp.open("GET", "myphp.php", true);
xmlHttp.send(null);
}
result=MakeRequest();
</script>
</head>
<body>
<div id='ResponseDiv'>
This is a div to hold the response.
</div>
</body>
</html>
我应该如何更改这些代码才能在网页上获得parst [0] [0]? 在此先感谢您的帮助
答案 0 :(得分:1)
您需要在javascript上使用JSON.parse,在php上使用json_encode。
PHP:
$parts = array();
....
echo (json_encode($parts));
使用Javascript:
var parts = JSON.parse(xmlHttp.responseText);
或者,在您的PHP页面上,您还可以定义header('Content-type: application/json');
答案 1 :(得分:0)
您应该在使用之前将您的json编码数据解析为javascript。 请在这里查看json
请尝试以下代码:
result = MakeRequest();
var myObject = eval('(' + result + ')');
alert(myObject[0][0]);