使用 jquery 创建一个 JS 应用程序。使用 JSON 将数据导入我的脚本时遇到了真正的麻烦。
在 .php 脚本中创建以下数据集;
<?php
$golfer_id=45;
$score_arr[$golfer_id]["name"]="Dave Curry";
$score_arr[$golfer_id][1]=4;
$score_arr[$golfer_id][2]=3;
$score_arr[$golfer_id][3]=5;
$score_arr[$golfer_id][4]=5;
$score_arr[$golfer_id][5]=5;
$score_arr[$golfer_id][6]=5;
$score_arr[$golfer_id][7]=5;
$score_arr[$golfer_id][8]=5;
$score_arr[$golfer_id][9]=5;
$golfer_id=25;
$score_arr[$golfer_id]["name"]="John Doe";
$score_arr[$golfer_id][1]=2;
$score_arr[$golfer_id][2]=2;
$score_arr[$golfer_id][3]=1;
$score_arr[$golfer_id][4]=5;
$score_arr[$golfer_id][5]=5;
$score_arr[$golfer_id][6]=5;
$score_arr[$golfer_id][7]=5;
$score_arr[$golfer_id][8]=5;
$score_arr[$golfer_id][9]=5;
echo json_encode($score_arr);
?>
最终,这些数据将来自 mysql 查询。
这会产生:
{"45":{"name":"Bob Test","1":4,"2":3,"3":5,"4":5,"5":5,"6":5,"7":5,"8":5,"9":5},"25":{"name":"John Doe","1":2,"2":2,"3":1,"4":5,"5":5,"6":5,"7":5,"8":5,"9":5}}
我正在使用此代码
<?php
$hole=1;
$gid=$_REQUEST['gid'];
?>
<script type="text/javascript">
gid= <?php echo "$gid"; ?>+0;
hole = <?php echo "$hole"; ?>+0;
score_arr = new Object() ;
var total = new Array() ;
$(document).ready(function(){
// SET the intial values
$("#hole_num").text(hole);
// Get Data from db
$.getJSON("golf_be.php","", function(score_arr){
// score_arr = jQuery.parseJSON(score_arr); Tried this it didn't work
console.log(score_arr); //uncomment this for debug
}); //End json
$("#score").text(score_arr[gid][hole]); \\ This has an error
$("#golfer_name").text(score_arr[gid]["name"]);
使用 Firebug 我在控制台上收到此错误。有趣的是,对象就在那里。
TypeError: score_arr[gid] is undefined
[Break On This Error]
$("#score").text(score_arr[gid][hole]);
golf.php?gid=25 (line 94)
Object { 0={...}, 45={...}, 25={...}}
尝试了很多东西,但在我看来,由于某种原因,JSON 中的对象没有正确进入 score_arr。如您所见,我也尝试了 parseJson,但没有成功。
其他一些历史,我从在同一个脚本中创建 php 数组开始。并使用 php echo 将编码的 JSON 数组直接放入 score var 中,一切正常。现在调整它以与数据库交互。
非常感谢任何帮助。有点 jQuery 和 JS 的新手,花了很多时间在这个很棒的网站上寻找答案,但没有运气。