Forum Webscript.Ru
Программирование => PHP => Тема начата: Lucent от 21 Января 2007, 14:08:21
-
есть PHP массив $a(набор языковых констант), его значения необходимо использовать в JS функциях, подгружаемых в JS файле.
что то типа
....
alert(" echo $a[\'test\'] ?>")
....
Как это сделать?
вариант определения JS переменных в PHP файле не подходит.
-
Не проще ли в таком случае определять переменные в отдельных JS-файлах для каждого языка, загружая нужный в зависимости от языка пользователя? Явно ведь константы эти не на лету будут меняться, набор их ограничен и более-менее постоянен в течение достаточно длительного времени. Так стоит ли сервер нагружать?
-
brainkiller
Это понятно, но дело в том, что есть константы, которые используются как в PHP, так и JS коде.
И хотелось бы такие константы определить 1 раз (скажем в ru.php файле), а не 2 (и ru.php, и ru.js)
то есть, вопрос сводится к тому, почему в процессе обработке JS файлов на предмет наличия PHP кода, PHP переменные не доступны?
Или я что-то путаю?
-
Учитывая то, что PHP выполняется на стороне сервера, а JS - на стороне клиента, то никакие "PHP-переменные" в JS-файле доступны, само собой, не будут.
В принципе, можно заставить PHP-скрипт вписать в отдаваемый клиенту HTML небольшой фрагмент JS-кода, в котором все нужные переменные будут определены.
-
Предлагаю просто переименовать файл FILE.JS в FILE.PHP и подключать прямо на страницу
Разницы никакой, что вы будете подключать файл js, что писать прямо в html.
А файо с расширением .js как вы ни рассуждайте не поймёт php кода
-
andymc:
А файл с расширением .js как вы ни рассуждайте не поймёт php кода
Ну почему же, если заставить Apache отдавать js файлы интерпретатору php, то поймет, другой вопрос нужно ли это делать...
-
Развели тут фигню.
Написано (http://phpfaq.ru/na_tanke#js) все уже.
-
hanslinger
Есть разные способы просто, вот и обсуждаем
-
Способ один. Генерировать JS средствами PHP. А все остальное это разные варианты реализации данного способа.
-
USE
Не согласен.
А асинхронные запросы?
-
CGVictor
В данном случае будет слишком накладно для каждой константы (или группы констант) посылать доплнительный запрос.
Даже и в случае с подгрузкой данных это будет генерация JS на PHP.
-
USE
USE:
слишком накладно
Почему? Все константы пачкой для одной страницы, далее они в локальном кеше осядут - теоретически возможный вариант.
* я поэтому и не стал сразу прикрывать эту тему, ага :)
[off]И, кстати, это необязательно JS(~JSON) из PHP. MSFT вон как резво xml-script юзает... в общем, возможны варианты.[/off]
-
CGVictor
А асинхронные запросы?
этот вариант не для новичка :)
Ему бы что попроще
-
andymc
Пусть сам решит.
-
html_coder:
Ну почему же, если заставить Apache отдавать js файлы интерпретатору php, то поймет, другой вопрос нужно ли это делать...
а еще mod_rewrite заюзать можно... :super: :rolleyes:
-
Только что обнаружил в коде http://liveinternet.ru/journal_register.php вот ЭТО:
Вот ведь люди как придумали...
-
[off]andymc
Один хрен вывод js из php :)[/off]
-
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(\' echo $lang[\'main_menu_lang\']?>\');
}
-
используй AJAX. поищи об этом в гугле..