| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > использование Js внутри Php |
| Автор: Su_ 15.10.2009, 03:26 | ||
| Доброе утро. Вопрос, простой, скорее для обозрения взаимодействия js и php/ Как сделать что бы js работал из-под Php? Сделал так:
работает, но это надо весь JS конвертить под hmtl тег, это довольно затруднительно.. Есть ли альтернативные варианты.. и делают ли вообще так? p.s. Идея:Динамическое меню,с использованием эффектов :1) добавление в бд нового пункта меню(через CSM) 2)php его обрабатывает 3)генерит js скрипт на красивую обработку меню |
| Автор: FortMax 15.10.2009, 04:14 | ||
просто вставляем в код пхп контейнер джаваскрипта, мухи отдельно компот отдельно
|
| Автор: Su_ 15.10.2009, 04:28 |
| Знакомые люди) Логично, но если мне нужно сделать чтобы php генерил js скрипт? хотя можно отдельно выполнить все в php, вывести нужные данные, и потом запустить js уже в html коде) Спасибо) |
| Автор: SoWa 15.10.2009, 06:14 | ||
Мб так?
Добавлено через 2 минуты и 2 секунды Ну это не совсем то, что ты хочешь... Это опять же вставка в готовый ЖС кусков ПХП... Есть какая-то функция для экранирования всех кавычек и вообще для приведения текста к форматированному для ПХП виду, но какая- не помню |
| Автор: solenko 15.10.2009, 08:33 |
| Честно говоря, так и не понял в чем проблемма топикстартера. В том, что нуно дописывать тег script и это муторно? Ну так вынесите это в отдельную функцию. А вообще-то есть более правльный подход к созданию таких меню -- менюшка выводится в html как обычный список ссылок. Далее js, который обычно лежит вообще в отдельном файле, на событии DOMContentLoaded обрабатывает эту менюшку и навешивает необходимые события. Красотой и сокртыием неактивных пунктов занимается CSS. Зачем так? Потому что: 1. Поисковик найдет ваше меню в html коде, где ему и положенно быть. Да, говорят, поисковики научились анализировать js, но я бы не надеялся на это 2. Пользователь, у которого отключен js сможет воспользоваться сайтом.(скажете такие пользователи давно вымерли? А хрен там -- самому иногда с сервака из links приходится серфить) 3. Вы получаете логично разделенные части, которые можно отлаживать отдельно и они могут быть отлажены разными людьми 4. Это повышает возможность повторного использования. |
| Автор: skyboy 15.10.2009, 09:10 | ||||
не смотря на то, что solenko указал на архитектурно правильное решение, для полноты картины видения мира замечу, что js можно формировать и без HTML тегов. вот, например, HTML-страница содержит в себе:
а в menu.php
точно так же, как можно указать адрес PHP-скрипта в качестве атрибута src для CSS(<link ... href='css.php') или картинки(<img src="image.php" ...) или другого указания URL. только очень-очень желательно отдавать соответствующие заголовки Content-Type и те, что влияют на кеширование(ETag, Last-Modified, Expires, Cache-Control). вот только стоит понимать, что статический элемент(выдача происходит непосредственно, без предварительной генерации) сервер отдает намного быстрее, чем происходит запуск PHP, генерация контента и выдача его. Поэтому динамической генерацией того, что может быть отдано статически - увлекаться не стоит. И если уж увлекаешься - предусмотреть сохранение сгенерированных данных в файл. Так, чтоб каждый раз не гонять PHP. И второе замечание: если мы говорим не о бинарных данных(картинка, файл-документ, архив), а о текстовом содержимом, то лучше разделять данные на изменчивую и неизменную часть. И генерировать только ту часть, что меняется. В случае с javascript это означает написать javascript-функцию и сохранить её в статичном js-файле, а генерировать только вызов этой функции в странице и список аргументов. |
| Автор: Su_ 15.10.2009, 15:10 |
| спасибо всем , попробую накидать примерчик, с учётом замечаний. Про архитектуру очень полезная информация, может кто посоветует книжечку или статейки хорошие? |
| Автор: capitan 15.10.2009, 15:22 |
| Что-то я так и не понял о чем идет речь. PHP - исполняется на стороне сервера, JS - на стороне клиента. Отсюда вывод: в JS можно встроить php, а вот в PHP встроить JS нельзя. Но есть проект http://kevin.vanzonneveld.net/techblog/category/php2js/ там многие PHP функции переписаны на JS. |
| Автор: Su_ 15.10.2009, 15:27 |
| хм, почему? как я понял можно, но не нужно. Клиент получает конечный Html код,который интерпретирует броузер.. Первый пост показывает это. или я не прав?. Спасибо за ссылку!) |
| Автор: bars80080 15.10.2009, 16:01 |
| capitan, говорит, что вы не корректно пользуетесь терминологией использовать js внутри php или наоборот невозможно, так как они работают в разные моменты времени на разных машинах. один на клиенте, другой на сервере но вы можете сгенерировать javascript-код на стороне сервера с помощью php правильное слово - генерировать |