2010-07-28 3 views

ответ

87

Если весь ваш код JS, обрабатывается с помощью PHP, то вы можете сделать это так же, как это. Если у вас есть отдельные .js-файлы, и вы не хотите, чтобы PHP обрабатывал их (например, по причинам кэширования), то что вы можете сделать, это просто передать переменные в JS. Например, в вашем index.php (или там, где вы указываете ваш макет), вы могли бы сделать что-то вроде этого:

<script type="text/javascript"> 
var my_var = <?php echo json_encode($my_var); ?>; 
</script> 

Вы можете затем использовать my_var в файлах JS. Этот метод также позволяет передавать только простые простые значения, так как json_encode() также корректно обрабатывает массивы, строки и т. Д., Сериализуя их в формат, который может использовать JS.

+1

json_encode сохранил меня – Subham93

2

Да, вы можете, при условии, что ваш код JavaScript встраивается в PHP-файл.

+1

можно сказать, у пожалуйста, простой привет мир программа, так что мой я имел немного света на мой взгляд –

+1

А «привет мир» программа делает то, что именно? –

+0

В принципе, что (я думаю), он говорит, что если выше был фрагмент кода, он был в файле .php, он будет работать. Следует отметить, что это может быть не так, как вы ожидаете, в зависимости от того, что вы ожидаете. – Davy8

2

Вы в значительной степени находитесь на балу. Единственное различие заключается в том, что я выделил бы javascript, чтобы большинство было во внешнем статическом файле. Тогда вы просто определить переменные или вызвать функцию от фактического PHP страницы:

<script type="text/javascript> 
    function_in_other_file(<?php echo my_php_var; ?>); 
</script> 
+0

привет не работает, я попробовал –

+0

exp.js содержит -> fun (i) {alert (i); } –

-1

Мы не можем использовать «PHP между JavaScript», потому что PHP работает на сервере и JS - на клиенте.
Однако мы можем генерировать код JS, а также HTML, используя все функции PHP, включая escaping from HTML один

+0

@Dumbldore другие ответы не имеют ничего общего с этим. Принятый ответ делает то же самое. Интересно, где вы нашли «новый стиль» –

15

Если поместить яваскрипт кода в PHP файла, вы можете не иначе, например:

page.php (Это будет работать)

function jst() 
{ 
var i = 0 ; 
i = <?php echo 35; ?>; 
alert(i); 
} 

page.js (Это не сработает)

function jst() 
{ 
var i = 0 ; 
i = <?php echo 35; ?> 
alert(i); 
} 
+0

page.php не работает tooo :) –

+1

@flash: Обязательно заверните свой код js в теги ' exp.js содержит -> fun (i) {alert (i); } –

3

PHP должен быть равен sed на сервере. JS работает в браузере клиента.

Наличие PHP-кода в файле .js не будет работать, за исключением того, что вы можете сказать серверу, чтобы проанализировать файл, который вы хотите иметь как .js, прежде чем он отправит его клиенту. И рассказывать сервер - самое легкое в мире: просто добавьте .php в конец имени файла.

Итак, вы можете назвать его javascript.php или, чтобы вы знали, что этот файл PRIMARILY, вы можете назвать его javascript.js.php - сервер распознает его как .php и проанализирует его.

2

Это бит кода, который нужно в верхней части вы Js

<?php 
    header('Content-Type: text/javascript; charset=UTF-8'); 
?> 

(function() { 
    alert("hello world"); 
})(); 
+0

Этот заголовок не нужен. –

+0

Неправильно, вам нужен этот заголовок, если вы создаете sw.php рабочих сервисов с другим заголовком, он сработает. –

1

Небольшой демо может помочь вам: В аЬс.PHP файл:

<script type="text/javascript"> 
    $('<?php echo '#'.$selectCategory_row['subID']?>').on('switchChange.bootstrapSwitch', function(event, state) { 
     postState(state,'<?php echo $selectCategory_row['subID']?>'); 
    }); 
</script> 
+0

или еще более красивый jQuery/php селектор: '$ ('')' – oMiKeY