PHP-массив в JS-массив с jQuery и json_encode - PullRequest
0 голосов
/ 15 июля 2010

Я просто хочу получить свой массив PHP в массив JS, что я здесь не так делаю?

PHP:

// get all the usernames
$login_arr = array();
$sql = "SELECT agent_login FROM agents";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    array_push($login_arr, $row["agent_login"]);
}
$js_login_arr = json_encode($login_arr);
print $js_login_arr; // ["paulyoung","stevefosset","scottvanderlee"] 

JS:

var login_arr = "<?= $js_login_arr; ?>";
alert(login_arr); // acn't even get the string in??
var obj = jQuery.parseJSON(login_arr);

Ответы [ 3 ]

1 голос
/ 15 июля 2010

Простой способ сделать это - разделить.Возьмите ваш массив (не используйте ассоциированные массивы, если вам не нужны имена полей), вставьте его в строку, ограниченную каким-то символом, который не должен использоваться, скажем% или что-то еще, тогда в JS просто взорвитесь на этом символе и вуаляу вас есть свой массив.Вам не нужно всегда использовать формализмы, такие как JSON или XML, когда простое решение поможет.

1 голос
/ 12 октября 2012

Если вы хотите сделать массив php в JSON, вы должны сделать это, если $phpArray на самом деле является массивом.

 var jsJSON =  echo json_encode($phpArray)

Если вы хотите просто повторить и обратиться к JSON, вы должны дать егокак строка:

 $phpArray = '{'.$key1.':'.$val1','.$key2':'.$val2.'}';

Это будет работать точно.

1 голос
/ 15 июля 2010

Удалите кавычки из встроенного PHP в вашем JavaScript.Нотация является литералом массива и не нуждается в кавычках (предполагается, что комментарий PHP после js_login_arr - это то, что напечатано в javascript).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...