我正在使用PHP条件,想知道我是否可以运行JavaScript函数,而不必使用JavaScript点击它:
if($value == 1)
{
JavaScript to run the function
}
我该怎么做?
答案 0 :(得分:28)
首先请记住,您的PHP代码在服务器上进行评估,而JavaScript则在客户端的浏览器中运行。这些评估发生在不同的地方,在不同的时间。因此,您无法从PHP调用JavaScript函数。
但是,使用PHP,您可以呈现HTML和JavaScript代码,使其仅在PHP条件为真时呈现。也许你可能想尝试这样的事情:
if($value == 1) {
echo "<script>";
echo "alert('This is an alert from JavaScript!');";
echo "</script>";
}
答案 1 :(得分:8)
Javascript是客户端代码,PHP是服务器端,因此在PHP中构建页面时无法执行javascript。
要在页面加载后立即在客户端执行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 :(得分:3)
我发现在IE和其他浏览器中你不能做这样的事情。它确实在Firefox中有效。你必须在另一个方法中回显出每一行。
<?php
if(somecondition)
{
?>
<script>
Some javascript code
</script>
<?php
}
?>
答案 3 :(得分:0)
我知道这个帖子已经老了但是我刚刚遇到它想要添加我的技术。
您还可以将php变量回显到JavaScript中,并根据其值执行某些操作。我使用它将数据库值放入js中,这样用户就可以在页面上用数学运算
<script>
var jsvar = <?php echo $phpvar ;?>
if (jsvar = x){ do something...}
</script>
答案 4 :(得分:0)
经过一番修补,我能够在.php文件中进行以下操作。 但是,这在.html文件中不起作用。
<?php
if (isset($_SESSION['loggedin'])) {$login='t';}else{$login='f';}
?>
<script>
var login = "<?php echo $login ?>";
console.log(login);
if (login == 'f'){ .. do something..}