Массивы PHP в массивы javascript

Я немного запутался здесь, как я реализую массив в JS из PHP ….

Я делаю это для тестирования – в конечном итоге я буду использовать длинные опросы или веб-сайты, если они получат поддержку, но это то, что у меня есть:

$get = mysql_query("SELECT x,y,sid FROM player_town WHERE uid='1'") or die(mysql_error()); $row = mysql_fetch_assoc($get); $data = json_encode($row); 

Далее вниз по сценарию я затем вставляю в голову:

 <script>var data = Array(<? $data; ?>)</script> <script type="text/javascript" src="js.js"></script> 

Но в js.js указано неопределенное, но $ data установлено. Это ошибка:

 x is not defined 

В js.js я сделал alert(data[x]); и я получаю undefined.

Мой json_encode выглядит так:

 {"x":"283","y":"99","sid":"1"} 

Есть идеи?

Не знаете, почему вам нужно обернуть строку json в массив, вы можете просто сделать

 var data = <?php echo $data; ?>; 

Чтобы получить значение данных в js, вы можете либо делать data.x, либо данные ["x"]

Убедитесь, что вы echo данные PHP в тегах <script>

 <script>var data = Array(<?php echo $data; ?>)</script> 

В стороне, это хорошая идея, чтобы избежать использования коротких тегов ( <? И ?> ) В производственном параметре – многие серверы отключили по умолчанию, и это действительно раздражает способ разрыва кода.

Вы должны попробовать это вместо этого:

 var data = <?= $data ?> 

Не уверен, что <? $data; ?> <? $data; ?> <? $data; ?> является опечаткой или нет, но вы должны использовать либо <?=$data;?> либо <?php echo $data; ?> <?php echo $data; ?>

Вы можете использовать AJAX (намного проще). Сделайте свой PHP-скрипт echo $data , а затем с помощью jQuery ajax запросите данные в вашем файле HTML как JSON. Например:

 $.ajax({ url: script_url, dataType: 'json', success: function(json) { ... } }); 

Я согласен с ответом в ваших комментариях. Я бы сделал вызов AJAX на вашFile.php, а затем отправил обратно ваш JSON-кодированный ответ. поэтому здесь был бы мой psuedo-код.

 1. Make AJAX request $.ajax({ url: "yourFile.php", dataType: 'json', success: function(data) { console.log(data); } }); 2. Make sure that your PHP file also returns header for JSON header('Content-type: application/json'); 2. Return {"x":"283","y":"99","sid":"1"} as data on your ajax request 3. call the values by using data.x or data.y or data.sid