我想在js中创建一个对齐项目的数组,每个项目都是DB的一行,每个项目都有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 =]
答案 0 :(得分:1)
要获取命名属性,请使用关联数组:
$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
。
答案 1 :(得分:0)
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);
}