Я использую условия PHP и хочу знать, могу ли я запускать функцию JavaScript, если кто-то не нажимает на нее с помощью JavaScript:
if($value == 1) { JavaScript to run the function }
Как мне это сделать?
Прежде всего, имейте в виду, что ваш PHP-код оценивается на сервере, а JavaScript работает в браузере на стороне клиента. Эти оценки происходят в разных местах, в разное время. Поэтому вы не можете вызвать функцию JavaScript из PHP.
Однако с PHP вы можете визуализировать HTML и JavaScript-код, чтобы он отображался только тогда, когда ваше условие PHP истинно. Может быть, вы захотите попробовать что-то вроде этого:
if($value == 1) { echo "<script>"; echo "alert('This is an alert from JavaScript!');"; echo "</script>"; }
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>'; } ?>
Я обнаружил, что вы не можете сделать что-то подобное в IE и других браузерах. Однако он работает в Firefox. Вы должны выполнить эхо-аут каждой строки, как указано в другом методе.
<?php if(somecondition) { ?> <script> Some javascript code </script> <?php } ?>
Я знаю, что эта ветка устарела, но я просто наткнулся на нее и хотел добавить мою технику.
Вы также можете отбросить переменную php в JavaScript и сделать что-то на основе ее значения. Я использую его для размещения значений базы данных в js, чтобы пользователь мог выполнять математику на странице с ними
<script> var jsvar = <?php echo $phpvar ;?> if (jsvar = x){ do something...} </script>