Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.02.2011, 15:57
Интересующийся
Отправить личное сообщение для Pumych Посмотреть профиль Найти все сообщения от Pumych
 
Регистрация: 25.12.2010
Сообщений: 29

PHP to JS Array
Нашел решение но оно не совсем удовлетворяет нужды.
Имеется PHP массив $img_arr который нужно перевести в jsArr массив.

<script type="text/javascript">
      var jsArr = new Array('<?php implode(",", $img_arr); ?>');
</script>

Возвращает названия но без кавычек.


<script type="text/javascript">
       var jsArr = new Array('<?php implode("\",\"", $img_arr); ?>');     
</script>

В первом и последнем элементе не хватает по кавычке.

Подскажите п-ста простое решение.
Ответить с цитированием
  #2 (permalink)  
Старый 09.02.2011, 16:03
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Pumych
В первом и последнем элементе не хватает по кавычке.
Ну так добавьте их.
Ответить с цитированием
  #3 (permalink)  
Старый 09.02.2011, 16:19
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Pumych
Подскажите п-ста простое решение.
что мешает сразу массив заполнять:
var jsArr = [<?php echo $img_arr; ?>];
Ответить с цитированием
  #4 (permalink)  
Старый 09.02.2011, 16:28
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Самое простое и гибкое решение - использовать JSON
var jsArr = <?php echo json_encode($img_arr);?>;
Правда, в случае отсутствия средств работы с JSON на сервере все становится не так весело.
Ответить с цитированием
  #5 (permalink)  
Старый 09.02.2011, 16:54
Интересующийся
Отправить личное сообщение для Pumych Посмотреть профиль Найти все сообщения от Pumych
 
Регистрация: 25.12.2010
Сообщений: 29

Сообщение от monolithed Посмотреть сообщение
что мешает сразу массив заполнять:
var jsArr = [<?php echo $img_arr; ?>];
Делается массив в массиве.
alert(jsArr[0]) - получаю
function Array() {
    [native code]
}
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2011, 10:50
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Вам уже объяснили, то нужно просто сделать implode и приписать кавычки вначале и в конце, какие тут еще могут быть вопросы?
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2011, 19:13
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Pumych Посмотреть сообщение
Нашел решение но оно не совсем удовлетворяет нужды.
Имеется PHP массив $img_arr который нужно перевести в jsArr массив.

<script type="text/javascript">
      var jsArr = new Array('<?php implode(",", $img_arr); ?>');
</script>

Возвращает названия но без кавычек.
Подскажите п-ста простое решение.
Как Вы формируете свой PHP-массив $img_arr ? Уже при его наполнении можно вместе с элементами массива вставлять кавычки, которые потом понадобятся в javascript.
Например, так:
array_push($img_arr,   "'".$OneArrayElement."'");
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2011, 19:16
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от SkyLight Посмотреть сообщение
Вам уже объяснили, то нужно просто сделать implode и приписать кавычки вначале и в конце, какие тут еще могут быть вопросы?
Это так, только когда PHP-массив пустой, то в результирующем JS-массиве появляется пара ненужных кавычек, что в некоторых случаях приводит к неверному результату. Чтобы избежать этого -надо создавать дополнительные проверки...
Ответить с цитированием
  #9 (permalink)  
Старый 10.02.2011, 22:30
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Согласен. Но тут никто и не рассматривает готовое универсальное решение. Главное - принцип работы.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
Суперглобальные PHP увидеть в JS Robox Общие вопросы Javascript 4 10.06.2010 15:49
Вызов PHP обработчика из JS Arfey Общие вопросы Javascript 15 07.06.2010 20:28
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43