JQuery の php スクリプトを介して送信された JSON 配列の結果を繰り返し処理しようとしています。現在、私がやりたいのは配列の長さを出力することだけですが、それだけでは機能しないので、ここに何かが欠けていると思います。
私の現在のhtml/JQueryは次のとおりです。
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.getJSON("./getFile.php?fileName=ni", function(json){
alert("test");
alert(json.length);
});
});
});
</script>
</head>
<body>
<div id="div1"><h2>Test script</h2></div>
<button>Get External Content</button>
</body>
</html>
出くわす JSON 文字列は次のとおりです。
[{"where":"up\n","time":"15:37:33"},{"where":"up\n","time":"15:39:34"},{"where":"up\n","time":"15:41:36"},{"where":"down\n","time":"15:43:37"}]
これは、php で多次元配列に対して json_encode を実行することによって生成されます。
アップデート:
2 つのアラートが発生することを期待していますが、そうではありません。テストも配列の長さも表示されません...
私のPHPコードは次のとおりです。
<?php
$myFile = $_GET['filename'];
$file = fopen($myFile, "r");
$$response = "[ ";
$data = array();
$json = array();
while (!feof($file))
{
$row = array();
$currentLine = fgets($file);
$parts = explode(" ", $currentLine);
$length = sizeof($parts);
$time = $parts[0];
$where = $parts[$length-1];
$json['where'] = $where;
$json['time'] = $time;
$data[] = $json;
}
echo json_encode($data);
?>