在js中创建包含php

时间:2015-07-26 07:00:17

标签: javascript php

我想在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 =]

2 个答案:

答案 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);
}