Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 715
от 16.07.2007, 20:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 425, Экспертов: 68
В номере:Вопросов: 1, Ответов: 7


Вопрос № 94764: Доброе время суток, господа эксперты. Столкнулся с проблемой: необходимо передать PHP-массив в JavaScript. Что вы можете посоветовать ? (желательно с примером)...

Вопрос № 94.764
Доброе время суток, господа эксперты.
Столкнулся с проблемой: необходимо передать PHP-массив в JavaScript.
Что вы можете посоветовать ?
(желательно с примером)
Отправлен: 11.07.2007, 13:36
Вопрос задал: Andrewfix (статус: Посетитель)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: XMF
Здравствуйте, Andrewfix!
--
Пример:

>
var n=new Array();
<?
foreach($array as $id=>$value) echo "n[$id] = '$value'; ";
?>
</script>
Ответ отправил: XMF (статус: 7-ой класс)
Ответ отправлен: 11.07.2007, 13:41
Оценка за ответ: 4

Отвечает: Юркин Александр
Здравствуйте, Andrewfix!
Сделать это вообще не проблема.

допустим ваш php массив это:
$phparray=array("Один","Два","Три","Четыре");

Создаем javascript массив:

>
var myarr=new Array(
<?
/// Тут делаем вывод из PHP массива
for($i=0;$i<count($phparray);$i++)
{
if($i>0){echo",";}
echo "'$phparray[$i]'";
}
?>
);
</script>

На выхлопе получим вот это:

>
var myarr=new Array('Один','Два','Три','Четыре');
</script>
Ответ отправил: Юркин Александр (статус: 1-ый класс)
Ответ отправлен: 11.07.2007, 13:49
Оценка за ответ: 5
Комментарий оценки:
Отлично! Кратко и очень толково!

Отвечает: Бородин Александр Олегович
Здравствуйте, Andrewfix!
Вариантов может быть несколько... Если PHP-массив уже сформирован, то можно написать что-либо типа:
>
massiv["id1"] = <?=$array["id1"]?>;
massiv["id2"] = <?=$array["id2"]?>;
//....... и т. д.
</script>
Попробуйте так, должно получиться. Правда, передать PHP-массив в цикл JavaScript так уже не выйдет, ручками придется делать.
---------
Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Ответ отправил: Бородин Александр Олегович (статус: 3-ий класс)
Ответ отправлен: 11.07.2007, 13:58
Оценка за ответ: 3

Отвечает: Flynn
Здравствуйте, Andrewfix!
Можно сгенерировать ява-массив как текст, и просто вывести его в браузер в нужном месте.
implode соединяет значения из массива temp в одну строку чреез указанную нами запятую.
В приведенном примере будет одномерный массив типа JSarr[0] =1; JSarr[1]=2 Если требуется сохранение ключей из РНР вывод массива из в браузер немного усложняется чтобы получить желаемый результат.

Приложение:

Ответ отправил: Flynn (статус: 1-ый класс)
Ответ отправлен: 11.07.2007, 14:01

Отвечает: Шахгусейнов Азиз
Здравствуйте, Andrewfix!

пропишите в JavaScript что-то типа:
var a=<?=$a?>
---------
Среди людей есть такие, которые говорят: "Мы уверовали в Бога и в Последний день". Однако они суть неверующие.
Ответ отправил: Шахгусейнов Азиз (статус: 4-ый класс)
Ответ отправлен: 11.07.2007, 14:09

Отвечает: Шпилевский Евгений Васильевич
Здравствуйте, Andrewfix!

$tmp = ">var a = new Array();";

for ($i=0; $i<=count($a); $i++)
{
$tmp .= "a[$i]=$a[$i];";
}

$tmp .= "</script>

echo $tmp;

не тестировал, но думаю мысль понятна так что разберетесь даже с багами
Ответ отправил: Шпилевский Евгений Васильевич (статус: 1-ый класс)
Ответ отправлен: 11.07.2007, 14:47

Отвечает: Киряков Александр Ивановичч
Здравствуйте, Andrewfix!
Я могу посоветывать(если передача массива идет при загрузке страници) :
echo ' type="text/javascript">
$array=array(''.implode('','',$array_php).'');
//текст javascript'a
</script>';
или при помощи ajax.
Ответ отправил: Киряков Александр Ивановичч (статус: 1-ый класс)
Ответ отправлен: 11.07.2007, 15:40


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.53 beta от 09.07.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное