2010-06-16 89 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>