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