Intereting Posts
Доступ к значениям массива с использованием ключа массива от Twig Лучший способ хранения & (Амперсанд) в базе данных MySQL PHP не может писать вне корня документа независимо от того, что Лак: как отдельно кешировать страницы на основе значения определенного файла cookie Видеоролик Vline для кросс-браузера не работает PHP: fopen () Разрешение отклонено Получить все новости и все комментарии Можно ли заменить функцию в классе PHP? Тип PHP-намека на примитивные значения? Массив с ассоциативным массивом – удаление дубликатов Как загрузить загруженные файлы с помощью php Сообщение на PHP, основанное на пользователе, имело прикрепленный файл или не прикрепляло файл (часть 2) Когда мы должны использовать многомодульную структуру (вместо простой структуры) в php Phalcon Неожиданная ошибка T_VARIABLE Обнаружение конфликтов перекрытия событий календаря с использованием PHP

Лучший способ включить javascript в php?

Так я это делаю сейчас.

<?php //show footer echo "<script type='text/javascript'>\n"; echo "alert('Congrats');\n"; echo "</script>"; ?> 

Есть ли лучший способ, чем просто повторить это?

Solutions Collecting From Web of "Лучший способ включить javascript в php?"

конечно

 ?> alert('Congrats'); <? 

Просто введите код JavaScript вне тегов PHP:

 <?php // your PHP code goes here ?> // your javascript function out of the PHP tag. function f() { alert('congrats'); } 

Если вам действительно нужно выполнить js, напечатав его с PHP, это будет, по крайней мере, более чистым, если бы у вас была функция js, хранящаяся в функциях в каком-то файле, а затем вызванная их путем печати вызовов.

Я рекомендую резервировать PHP-файлы только для кода PHP и сохранять ваш внешний код (HTML / CSS / javascript) в отдельных файлах шаблонов.

В прошлый раз, когда я проверил, смешение уровня представления и кода backend в тот же файл было популярным около 12 лет назад.

Ваша иерархия файлов для проекта может выглядеть так:

 - my_project - lib - PHP files here - templates - HTML templates here - public <- this is your document root for web server - index.php <- just a dispatcher - js - images - css 

Используйте HEREDOCS или выходите из режима PHP в режим «html». Если Javascript полностью статичен или содержит несколько частей, которые должны иметь некоторое значение PHP, перейдите в html-режим («?>» Из php). Это позволит любому достойному текстовому редактору понять, что вы делаете HTML и Javascript, и подчеркивание синтаксиса по мере необходимости. Ниже приведены все эквиваленты, но выберите для себя, что более читаемо:

'pure php':

 <?php echo '<script>'; echo ' var x = [' . $somePHPvar . '];'; echo ' alert(x);'; echo '<script>'; ?> 

Синтаксис «heredoc»:

 <?php echo <<<EOF <script> var x = [{$somePHPvar}]; alert(x); </script> EOF; ?> 

'html mode':

 <?php ?> <script> var x = [<?php echo $somePHPVar ?>]; alert(x); </script> 

плюсы / минусы для каждого:

  1. pure php: вы можете оставаться в режиме PHP, а ваши echo + $ vars будут выделены как PHP-код, но html / javascript, который вы эхом, будет обрабатываться как обычный текст и покрасить как таковой (т. е. тот же цвет)
  2. Синтаксис heredoc: вы остаетесь в режиме PHP, но получаете выгоду от того, что вам не нужно избегать кавычек ( ' и " ) в вашем коде, поэтому любой html будет выглядеть более чистым. Большинство редакторов распознают PHP vars в блоке heredoc и соответствующим образом окрасят их , но остальная часть текста будет обрабатываться как текст, поэтому javascript / html выглядят одинаково. Кроме того, вы не можете вставлять вызовы функций в текст. Вы должны сделать это до начала heredoc и сохранить результаты в var, что может быть вставлен. HEREDOC также может использоваться для непосредственного назначения длинных текстовых блоков в переменную.
  3. 'html mode': редактор увидит / распознает ваши html, javascript, AND php и соответствующим образом окрасит их. Но это связано с необходимостью разбрасывать теги open / close php везде, где вам нужно, чтобы динамическое заполнение некоторого значения. С положительной стороны вы можете напрямую вставлять результаты вызова функции ( htmlspecialchars() , urlecncode() , html_strip_tags() и т. urlecncode() , Не html_strip_tags() значения в промежуточном var. Это также делает более сложный код, так как ваш PHP теперь посыпается случайным образом через html / javascript-код.

Все это сводится к тому, что проще всего для конкретного кода, над которым вы работаете.

Вы можете использовать шаблон model-view-controller для вывода JavaScript.

У вас может быть файл «view», в котором хранится большая часть вашего JS:

myJavascript.js.php:

 alert('hello bob'); alert('hello <?php echo $name; ?>'); alert('whats up?'); 

Ваш контроллер, jsController.php:

 $name = "Jane";