Forum Webscript.Ru

Программирование => PHP => Тема начата: Lucent от 21 Января 2007, 14:08:21

Название: Передача PHP переменных в JS файл
Отправлено: Lucent от 21 Января 2007, 14:08:21
есть PHP массив $a(набор языковых констант), его значения необходимо использовать в JS функциях, подгружаемых в JS файле.

что то типа
....
alert("")
....

Как это сделать?

вариант определения JS переменных в PHP файле не подходит.
Название: Передача PHP переменных в JS файл
Отправлено: brainkiller от 21 Января 2007, 17:26:49
Не проще ли в таком случае определять переменные в отдельных JS-файлах для каждого языка, загружая нужный в зависимости от языка пользователя? Явно ведь константы эти не на лету будут меняться, набор их ограничен и более-менее постоянен в течение достаточно длительного времени. Так стоит ли сервер нагружать?
Название: Передача PHP переменных в JS файл
Отправлено: Lucent от 21 Января 2007, 17:48:30
brainkiller
Это понятно, но дело в том, что есть константы, которые используются как в PHP, так и JS коде.
И хотелось бы такие константы определить 1 раз (скажем в ru.php файле), а не 2 (и ru.php, и ru.js)

то есть, вопрос сводится к тому, почему в процессе обработке JS файлов на предмет наличия PHP кода, PHP переменные не доступны?

Или я что-то путаю?
Название: Передача PHP переменных в JS файл
Отправлено: brainkiller от 21 Января 2007, 22:34:42
Учитывая то, что PHP выполняется на стороне сервера, а JS - на стороне клиента, то никакие "PHP-переменные" в JS-файле доступны, само собой, не будут.

В принципе, можно заставить PHP-скрипт вписать в отдаваемый клиенту HTML небольшой фрагмент JS-кода, в котором все нужные переменные будут определены.
Название: Передача PHP переменных в JS файл
Отправлено: andymc от 21 Января 2007, 23:52:36
Предлагаю просто переименовать файл FILE.JS в FILE.PHP и подключать прямо на страницу Разницы никакой, что вы будете подключать файл js, что писать прямо в html.
А файо с расширением .js как вы ни рассуждайте не поймёт php кода
Название: Передача PHP переменных в JS файл
Отправлено: html_coder от 22 Января 2007, 10:36:08
Цитировать
andymc:
А файл с расширением .js как вы ни рассуждайте не поймёт php кода


Ну почему же, если заставить Apache отдавать js файлы интерпретатору php, то поймет, другой вопрос нужно ли это делать...
Название: Передача PHP переменных в JS файл
Отправлено: hanslinger от 22 Января 2007, 11:25:33
Развели тут фигню.
Написано (http://phpfaq.ru/na_tanke#js) все уже.
Название: Передача PHP переменных в JS файл
Отправлено: andymc от 22 Января 2007, 12:17:07
hanslinger
Есть разные способы просто, вот и обсуждаем
Название: Передача PHP переменных в JS файл
Отправлено: USE от 22 Января 2007, 13:21:10
Способ один. Генерировать JS средствами PHP. А все остальное это разные варианты реализации данного способа.
Название: Передача PHP переменных в JS файл
Отправлено: CGVictor от 22 Января 2007, 14:28:30
USE
Не согласен.
А асинхронные запросы?
Название: Передача PHP переменных в JS файл
Отправлено: USE от 22 Января 2007, 14:38:34
CGVictor
В данном случае будет слишком накладно для каждой константы (или группы констант) посылать доплнительный запрос.

Даже и в случае с подгрузкой данных это будет генерация JS на PHP.
Название: Передача PHP переменных в JS файл
Отправлено: CGVictor от 22 Января 2007, 22:01:01
USE
Цитировать
USE:
слишком накладно

Почему? Все константы пачкой для одной страницы, далее они в локальном кеше осядут - теоретически возможный вариант.
* я поэтому и не стал сразу прикрывать эту тему, ага :)

[off]И, кстати, это необязательно JS(~JSON) из PHP. MSFT вон как резво xml-script юзает... в общем, возможны варианты.[/off]
Название: Передача PHP переменных в JS файл
Отправлено: andymc от 23 Января 2007, 13:41:20
Цитировать
CGVictor
А асинхронные запросы?
этот вариант не для новичка :)
Ему бы что попроще
Название: Передача PHP переменных в JS файл
Отправлено: CGVictor от 23 Января 2007, 15:40:49
andymc
Пусть сам решит.
Название: Передача PHP переменных в JS файл
Отправлено: Yukko от 23 Января 2007, 20:29:47
Цитировать
html_coder:
Ну почему же, если заставить Apache отдавать js файлы интерпретатору php, то поймет, другой вопрос нужно ли это делать...

а еще mod_rewrite заюзать можно... :super: :rolleyes:
Название: Передача PHP переменных в JS файл
Отправлено: andymc от 23 Января 2007, 23:11:58
Только что обнаружил в коде http://liveinternet.ru/journal_register.php вот ЭТО:


Вот ведь люди как придумали...
Название: Передача PHP переменных в JS файл
Отправлено: CGVictor от 24 Января 2007, 00:30:11
[off]andymc
Один хрен вывод js из php :)[/off]
Название: Передача PHP переменных в JS файл
Отправлено: Lucent от 24 Января 2007, 01:22:16
2 варианта:
1. использовать для JS констант отдельный файл (ru.js)
2.

test.php
session_start();
$_SESSION[\'ln\']=\'ru\';
?>




test.js

session_start();
include("languages/{$_SESSION[\'ln\']}.php");
?>
function my()
   {
   alert(\'\');
   }
Название: Передача PHP переменных в JS файл
Отправлено: D Mak от 27 Января 2007, 17:55:38
используй AJAX. поищи об этом в гугле..