2010-06-16 86 views
5

我使用PHP条件,并想知道如果我能没有一些一个运行的JavaScript函数已经在其上单击使用JavaScript:从PHP运行JavaScript函数if语句

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

我会怎么做那?

回答

27

首先请记住,您的PHP代码在服务器上进行评估,而JavaScript在客户端的浏览器中运行。这些评估发生在不同的地方,在不同的时间。因此你不能从PHP调用JavaScript函数。

但是,使用PHP,您可以呈现HTML和JavaScript代码,使其仅在您的PHP条件为true时才呈现。也许你可能想尝试这样的事情:

if($value == 1) { 
    echo "<script>"; 
    echo "alert('This is an alert from JavaScript!');"; 
    echo "</script>"; 
} 
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

我发现,你不能这样做在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>