2010-06-16 2 views

ответ

27

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

Однако с PHP вы можете визуализировать HTML и JavaScript-код таким образом, чтобы он отображался только тогда, когда ваше условие PHP истинно. Может быть, вы можете попробовать что-то вроде этого:

if($value == 1) { 
    echo "<script>"; 
    echo "alert('This is an alert from JavaScript!');"; 
    echo "</script>"; 
} 
8

Javascript является код на стороне клиента, PHP на стороне сервера, так что вы не можете выполнить JavaScript при построении страницы в PHP.

Для выполнения JavaScript на стороне клиента, как только страница загружена, один из способов заключается в использовании организму onload обработчик для вызова функции:

<?php 
echo '<script type="text/javascript">'; 
echo 'function myFunction(){ /* do_something_in_javascript */ };'; 
echo '</script>'; 

if ($value == 1) { 
    echo '<BODY onLoad="myFunction()">'; 
} 
?> 

еще лучше, если вы можете позволить себе пропускную способность использовать JQuery и использовать $(document).ready():

<?php 
if ($value == 1) { 
    echo '<script type="text/javascript">'; 
    echo '$(document).ready(function(){ /* do_something_in_javascript */ });'; 
    echo '</script>'; 
} 
?> 
2

Я обнаружил, что вы не можете сделать что-то подобное в IE и других браузерах. Однако он работает в Firefox. Вы должны выполнить эхо-аут каждой строки, как указано в другом методе.

<?php 
if(somecondition) 
    { 
?> 

<script> 
Some javascript code 
</script> 

<?php 
    } 
?> 
0

Я знаю, что эта ветка устарела, но я просто наткнулся на нее и хотел добавить мою технику.

Вы также можете отбросить переменную php в JavaScript и сделать что-то на основе ее значения. Я использую его для размещения значений базы данных в js, чтобы пользователь мог делать математику на странице с ними.

<script> 
var jsvar = <?php echo $phpvar ;?> 
if (jsvar = x){ do something...} 
</script> 
Смежные вопросы