2015-07-26 2 views
1

Я хочу создать массив в js, который разбивает элементы, каждый элемент представляет собой строку из БД, каждый элемент имеет свойство id и name.Создайте массив в js, который содержит php

я создать эту функцию в 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 Я имею в виду, если я хочу идентификатор 1 только, как я могу его получить?

Я пробовал это: window.test [1], но его возвращает идентификатор и имя ... что, если я хочу только имя? или только идентификатор?

помогите пожалуйста, и напишите, как я могу accses Кодекса свой важный ..

TY =]

+0

'window.test [0] [1]' для получения значения: 'E1' –

+0

Если вам нужны именованные свойства, используйте ассоциативный массив. – Barmar

ответ

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.

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); 
} 
Смежные вопросы