问题描述
我想在js中创建一个包含项目的数组,每个项目都是数据库的一行,每个项目都有id和name属性。
我在php中创建此函数:
function getECatTest(){
$accountid = getAccountid($_SESSION[get("session_name")]);
$aaa = array();
$query = mysql_query("SELECT * FROM `ExpensesCategorys`");
while($result = mysql_fetch_assoc($query)){
//$cars[$result["category_id"]] = $result["category_name"];
$cars = array($result["category_id"],$result["category_name"]);
array_push($aaa,$cars);
$count += 1;
}
$js_array = json_encode($aaa);
echo "window.test = ".$js_array.";\n";
}
这是js代码:
<script type="text/javascript">
<?php getECatTest(); ?>
</script>
现在这就是我得到的:
window.test = [["1","E1"],["2","E2"],["3","E3"],["4","E4"],["5","E5"],["6","E6"],["7","E7"],["8","E8"]];
我想将其排序为“ id”:“ 1”,“ name”:“ E1”,依此类推...等等,我不知道该如何使用代码:D我的意思是如果我只想要id 1,可以得到吗?
我尝试了这个:window.test [1]但它返回ID和名称...如果我只想要名称,该怎么办? 还是只有身份证?
请帮助,并写出我如何能对代码很重要。
TY =]
1楼
Barmar
1
已采纳
2015-07-26 07:07:19
要获取命名属性,请使用关联数组:
$cars = array('id' => $result['category_id'],
'name' => $result['category_name']);
$aaa[] = $cars;
然后,JavaScript结果将如下所示:
window.test = [ { "id": "1", "name": "E1" }, { "id": "2", "name": "E2" }, ...];
然后,使用window.test[0].name来访问名字。
2楼
Abhishek Bhardwaj
0
2015-07-26 07:07:12
window.test是一个二维数组。
您可以使用:
window.test[0][0] for 0'th element's id
window.test[0][1] for 0'th element's value
或者:
function getECatTest(){
$accountid = getAccountid($_SESSION[get("session_name")]);
$aaa = array();
$query = mysql_query("SELECT * FROM `ExpensesCategorys`");
while($result = mysql_fetch_assoc($query)){
//$cars[$result["category_id"]] = $result["category_name"];
$cars = array('id'=>$result["category_id"],'name'=>$result["category_name"]);
array_push($aaa,$cars);
$count += 1;
}
$js_array = json_encode($aaa);
echo "window.test = ".$js_array.";\n";
}
在javascript中使用:
for(element in window.test){
alert(element.id + " " + element.name);
}