当前位置: 代码迷 >> JavaScript >> 在包含PHP的JS中创建数组
  详细解决方案

在包含PHP的JS中创建数组

热度:72   发布时间:2023-06-05 09:41:39.0

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

要获取命名属性,请使用关联数组:

$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来访问名字。

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);
}
  相关解决方案