从php if语句运行JavaScript函数

时间:2010-06-16 21:26:48

标签: php javascript

我正在使用PHP条件,想知道我是否可以运行JavaScript函数,而不必使用JavaScript点击它:

if($value == 1)     
{  
    JavaScript to run the function  
}

我该怎么做?

5 个答案:

答案 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..}