Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использование Js внутри Php, как Оптимально сделать рабочий js скрипт 
:(
    Опции темы
Su_
Дата 15.10.2009, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Доброе утро.

Вопрос, простой, скорее для обозрения взаимодействия js и php/

Как сделать что бы js работал из-под Php?

Сделал так:
Код


<?php


#Test Java Script
echo " \n" ;
$str= "<"."script language= \"JavaScript1.2\"".">" . "\n"."document.write( \" JavaScript in php work \" );". "\n"."<"."/script" .">";
echo "$str";
?>




работает, но это надо весь JS конвертить под hmtl тег, это довольно затруднительно.. Есть ли альтернативные варианты.. и делают ли вообще так?


p.s.


Идея:Динамическое меню,с использованием эффектов
:1) добавление в бд нового пункта меню(через CSM) 
2)php его обрабатывает
3)генерит js скрипт на красивую обработку меню



Это сообщение отредактировал(а) Su_ - 15.10.2009, 03:27


--------------------
user posted image

PM MAIL WWW   Вверх
FortMax
Дата 15.10.2009, 04:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 2.10.2006
Где: Россия, г. Бироби джан ЕАО

Репутация: 1
Всего: 5



просто вставляем в код пхп контейнер джаваскрипта, мухи отдельно компот отдельно smile 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>
 <?php echo "начало" ?>
 <script type="text/javascript">
 alert("Hello =)");
 </script>
 </br>
  <?php echo "конец" ?>
</body>
</html>


Это сообщение отредактировал(а) FortMax - 15.10.2009, 04:15


--------------------
user posted image
PM MAIL ICQ   Вверх
Su_
Дата 15.10.2009, 04:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Знакомые люди)

Логично, но если мне нужно сделать чтобы php генерил js скрипт? хотя можно отдельно выполнить все в php, вывести нужные данные, и потом запустить js уже в html коде)

Спасибо) smile 


--------------------
user posted image

PM MAIL WWW   Вверх
SoWa
Дата 15.10.2009, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Мб так?
Код

<?php echo "начало" ?>
 <script type="text/javascript"> 
alert(<?php echo "123" ?>); 
</script> 
</br>  
<?php echo "конец" ?>


Добавлено через 2 минуты и 2 секунды
Ну это не совсем то, что ты хочешь... Это опять же вставка в готовый ЖС кусков ПХП...
Есть какая-то функция для экранирования всех кавычек и вообще для приведения текста к форматированному для ПХП виду, но какая- не помню  smile 


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
solenko
Дата 15.10.2009, 08:33 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Честно говоря, так и не понял в чем проблемма топикстартера. В том, что нуно дописывать тег script и это муторно? Ну так вынесите это в отдельную функцию. 

А вообще-то есть более правльный подход к созданию таких меню -- менюшка выводится в html как обычный список ссылок. Далее js, который обычно лежит вообще в отдельном файле, на событии DOMContentLoaded обрабатывает эту менюшку и навешивает необходимые события. Красотой и сокртыием неактивных пунктов занимается CSS.

Зачем так? Потому что:
1. Поисковик найдет ваше меню в html коде, где ему и положенно быть. Да, говорят, поисковики научились анализировать js, но я бы не надеялся на это
2. Пользователь, у которого отключен js сможет воспользоваться сайтом.(скажете такие пользователи  давно вымерли? А хрен там -- самому иногда с сервака из links приходится серфить)
3. Вы получаете логично разделенные части, которые можно отлаживать отдельно и они могут быть отлажены разными людьми
4. Это повышает возможность повторного использования. 


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 15.10.2009, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



не смотря на то, что solenko указал на архитектурно правильное решение, для полноты картины видения мира замечу, что js можно формировать и без HTML тегов. вот, например, HTML-страница содержит в себе:
Код

<script type="text/javascript" src="menu.php"></script>

а в menu.php
Код

<?php
header('Content-Type: text/javascript');
echo<<<TXT
 {javascript code}
TXT;
?>

точно так же, как можно указать адрес 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-файле, а генерировать только вызов этой функции в странице и список аргументов.
PM MAIL   Вверх
Su_
Дата 15.10.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



спасибо всем , попробую накидать примерчик, с учётом замечаний. Про архитектуру очень полезная информация, может кто посоветует книжечку или статейки хорошие?


--------------------
user posted image

PM MAIL WWW   Вверх
capitan
Дата 15.10.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Что-то я так и не понял о чем идет речь. PHP - исполняется на стороне сервера, JS - на стороне клиента. Отсюда вывод: в JS можно встроить php, а вот в PHP встроить JS нельзя.  Но есть проект http://kevin.vanzonneveld.net/techblog/category/php2js/   там многие PHP функции переписаны на JS. 

Это сообщение отредактировал(а) capitan - 15.10.2009, 15:22
PM MAIL WWW ICQ   Вверх
Su_
Дата 15.10.2009, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



хм, почему? как я понял можно, но не нужно. Клиент получает конечный Html код,который интерпретирует броузер..   Первый пост показывает это. или я не прав?. Спасибо за ссылку!)


--------------------
user posted image

PM MAIL WWW   Вверх
bars80080
Дата 15.10.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



capitan, говорит, что вы не корректно пользуетесь терминологией

использовать js внутри php или наоборот невозможно, так как они работают в разные моменты времени на разных машинах. один на клиенте, другой на сервере
но вы можете сгенерировать javascript-код на стороне сервера с помощью php

правильное слово - генерировать
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0540 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.