Как передать массив PHP в JQuery?

0

У меня есть поле ввода, которое я хочу заполнить кучей возможных источников, но мне нужно захватить эти источники из нескольких разных областей: файл на моем сервере и некоторые вещи, которые уже находятся в jQuery.

Поле ввода будет отображаться внутри iFrame, поэтому у меня есть.php, который будет отображать некоторые html, когда он вызывается в качестве источника.

<?php
$array = array('Louisville, KY', 'Denver, CO');
echo "
<html>
<head>
<link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
  <script src='//code.jquery.com/jquery-1.10.2.js'></script>
  <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
  <link rel='stylesheet' href='/resources/demos/style.css'>
  <script>
  $(function() {
    var availableTags = [
      'Boston, MA',
      'New York City, NY',
      'Los Angelos, CA'
    ];
    availableTags = $.merge(availableTags, ".$array.");

    $( '#tags' ).autocomplete({
      source: availableTags
    });
  });
  </script>
  </head>
<body>
Select a voting option.
<br>
<span id='options'>
<form method='post' action='/creations/tools/poll/pollstorage.php' target='mainframe'>
<input id='tags' name='score'/>
<input type='submit' value='Vote'/>
</form>
<br>
</span>
</body>
</html>
"
?>

В jQuery, что я буду эхом в iframe, вы можете увидеть, что я пытаюсь объединить существующий массив jQuery и вывод массива PHP: availableTags = $.merge(availableTags, ".$array."); , Я попробовал, и ни один из jQuery не работает.

Что я здесь делаю неправильно? Как мне следует объединить массив PHP и массив jQuery?

  • 0
    Массивы PHP сильно отличаются от массивов Javascript.
  • 0
    Вот почему я спрашиваю, как это сделать.
Показать ещё 3 комментария
Теги:
arrays
iframe

4 ответа

1
Лучший ответ

Использовать json_encode():

$.merge(availableTags, ". json_encode($array).");
  • 0
    Остальная часть кода jQuery снова начала работать, но массивы все еще не объединены.
  • 0
    О, невм ... Я понял! СПАСИБО СПАСИБО СПАСИБО. Боже, этот сайт спасатель ...
Показать ещё 1 комментарий
1
var php_array = [<?php echo '"'.implode('","',  $array).'"' ?>];
availableTags = $.merge(availableTags,php_array );
1

Вы можете преобразовать php-массив в json файл и использовать его в java-Script или jquery. использовать php json_encode

0

Я считаю, что лучшим решением является использование json.

На PHP создайте страницу, чем выводите нужные данные json:

page data.json

<?php 
    $obj['jsArray']= array('Boston, MA','New York City, NY','Los Angelos, CA');
    echo json_encode($obj);
?>

На странице Html с помощью getJSON загрузите свою страницу с помощью json-данных (я использую псевдо-код, который не тестировался):

$.getJSON( "data.json", function( data ) {
  var availableTags = data.jsArray 
});

или, если у вас есть доступныеТаги и будут добавлены новые данные:

$.getJSON( "data.json", function( data ) {
  availableTags.push(data.jsArray)
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню