Вывод массива

Аватар пользователя Junnior Junnior 27 августа 2018 в 15:40

Добрый день, есть такая проблема с выводом массива, которую не могу решить. Когда проверяю полученный массив в js. В массиве находится только последний элемент. Как это можно исправить?

 
<?php foreach ($cities as $city):?>
  <?php $a = '../'.$city['domain'];?>
  <li><a href=<?php print $a;?>><?php print $city['title']; ?></a></li>
  <?php drupal_add_js(array('city_title' => $city['title']), 'setting'); ;?>
<?php endforeach; ?>
0 Thanks

Лучший ответ

Аватар пользователя fairrandir fairrandir 27 августа 2018 в 16:40
<?php
$city_titles 
= array();
foreach (
$cities as $city) {
  
$city_titles[] = $city['title'];
}
drupal_add_js(array('city_titles' => $city_titles), 'setting'); ;?>

Комментарии

Аватар пользователя fairrandir fairrandir 27 августа 2018 в 16:00

Тут вообще весь код непонятно как должен работать. Переменная $city_result не используется и затирается новым значением сразу после создания, а в settings каждый проход значение перезаписывается.

Аватар пользователя OldWarrior OldWarrior 27 августа 2018 в 16:05

Вот это вроде как вообще не имеет смысла:

<?php
drupal_add_js
(array('city_title' => $city['title']), 'setting'); 
?>

Да и эта ссылка как-то странно формируется (в смысле с переходом на уровень/каталог выше):

<?php
$a 
'../'.$city['domain'];
?>
Аватар пользователя OldWarrior OldWarrior 27 августа 2018 в 17:16
Junnior wrote:

Как раз мне нужно передать массив PHP в JS при помощи drupal_add_js.

Ну это не даст эффекта в вашей реализации. Будет только последнее значение из цикла передано в JS.
fairrandir же уже написал:

fairrandir wrote:

а в settings каждый проход значение перезаписывается

Аватар пользователя Junnior Junnior 27 августа 2018 в 16:16

Ссылка формируется так, потому что я делаю у себя на локальном. Можете не обращать на это внимание.

Аватар пользователя OldWarrior OldWarrior 27 августа 2018 в 16:07
fairrandir wrote:

Переменная $city_result не используется и затирается новым значением сразу после создания, а в settings каждый проход значение перезаписывается.

Одновременно отписали )

Аватар пользователя fairrandir fairrandir 27 августа 2018 в 16:40
<?php
$city_titles 
= array();
foreach (
$cities as $city) {
  
$city_titles[] = $city['title'];
}
drupal_add_js(array('city_titles' => $city_titles), 'setting'); ;?>