PHP配列をエコーすると、次のように表示されます
echo json_encode($marray);
画面
{"marray":[{"lat":"12.34","long":"76.35"},{"lat":"13.60","long":"77.34"},{"lat":"14.45" ,"長い":"78.70"},{"緯度":"12.12","長い":"79.47"}]}
オンラインjsonフォーマッターでjson_string(上記)をチェックしました...エラーは表示されません。
私は ajax を使用して、この変数 xmlhttp.responseText で json 文字列を取得しています。
その変数を出力すると、php の echo ステートメントと同じように ourput が表示されます。
しかし、上記のjson文字列を(ajax応答を使用せずに)直接コピーしてjavascript変数に貼り付けると、表示されます
[対象オブジェクト]、[対象オブジェクト]、[対象オブジェクト]、[対象オブジェクト]
次に、ドット演算子を使用してデータを取得できます.....
json文字列がphpファイルからの応答としてjs変数に格納されたときに何が起こっているのかわかりません。
これらに関する多くのスレッドがありますが、それでも私の問題を理解できません....JSON.parse()とeval()が機能していません。
私のPHPコーディング...
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
$length=mysql_num_rows($result);
while($row=mysql_fetch_array($result))
{
$marray[$i] =
array(
"lat" => $row['lat'],
"long" => $row['long']
);
$i++;
}
$dmarray=array("marray"=>$marray);
echo json_encode($dmarray);
私を助けてください....問題はばかげているようですが、それには費用がかかりました、私は3日間眠れぬ夜を過ごしました
<script type="text/javascript">
function displayvalue()
{
m="xxx";
var xmlhttp;
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)
{
var h=xmlhttp.responseText;
document.getElementById("data").innerHTML="h";
}
}
xmlhttp.open("GET","array.php?q="+m,true);
xmlhttp.send(null);
}
</script>