2013-07-09 52 views
-1

是否有可能在一個javascript函數中有php代碼?我有一個調用這個函數的按鈕,但它似乎不起作用。表格沒有顯示,沒有任何反應是否有可能在JavaScript函數中有php代碼?

<script> 
    function selectFunction() 
    { 
    <?php 
     $con = mysqli_connect("localhost","root","","study"); 

     if (mysqli_connect_errno($con)) 
      { 
       echo "Failed to connect to mysql" . mysqli_connect_error(); 
      } 

      $result = mysqli_query($con,"SELECT * FROM sample_employers"); 

      while($row=mysqli_fetch_array($result)) 
      { 
       echo "<tr>"; 
       echo "<td>" . $row['firstname'] . "</td>"; 
       echo "<td>" . $row['lastname'] . "</td>"; 
       echo "<td>" . $row['middlename'] . "</td>"; 
       echo "<td> <input type='button' value='Delete' </td>"; 
       echo "</tr>"; 
      } 

      mysqli_close($con); 
    ?> 
    } 
</script> 
+1

PHP代碼將執行第一,然後輸出將在您的JavaScript函數。它不會使用javascript調用php函數。 –

+4

需要注意的是,PHP是服務器端語言,而Javascript是客戶端語言。 – aug

+0

這被稱爲AJAX – zkanoca

回答

1

這取決於你要用它做什麼。如果您想參考PHP來做一些JavaScript,例如顯示一些由存儲在數據庫中的用戶數據指定的圖像。這通常是通過嵌入html中的script標籤完成的。

但是,如果你想用JavaScript來做一些PHP,那麼你嘗試做的事情將不起作用,而我會建議你在AJAX調用中也這樣做。

0

PHP是服務器端語言,JavaScript是客戶端語言。所以,當你打電話給這個頁面時,php頁面的結果將會帶有js代碼的alanog,即php代碼將首先執行,而不是在javascript調用中。

有一個解決方案,你可以去阿賈克斯調用。撥打服務器端頁面,然後執行您的功能。

這裏是一個教程

http://www.w3schools.com/ajax/default.asp

http://www.w3schools.com/jquery/ajax_post.asp

0

在這裏你去...

我編碼它速度快,您可以通過jQuery引用調用AJAX ...所以也許你需要檢查更多的支持無論如何應該適用於大多數現代瀏覽器。

X是AJAX功能

顯示是顯示功能

加載頁面時它搜索的第一個按鈕,並增加了一個點擊監聽,執行它調用異步的Ajax的功能顯示功能。

另存爲「使用example.php」

<?php 
if($_GET['ajax']){ 
$con = mysqli_connect("localhost","root","","study"); 
if (mysqli_connect_errno($con)){ echo "Failed to connect to mysql" . mysqli_connect_error(); } 
$result = mysqli_query($con,"SELECT * FROM sample_employers"); 
while($row=mysqli_fetch_array($result)){ 
    echo "<tr>"; 
    echo "<td>" . $row['firstname'] . "</td>"; 
    echo "<td>" . $row['lastname'] . "</td>"; 
    echo "<td>" . $row['middlename'] . "</td>"; 
    echo "<td> <input type='button' value='Delete' </td>"; 
    echo "</tr>"; 
} 
mysqli_close($con); 
}else{ 
?><!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title></title> 
<script> 
var x=function(a,b,c){c=new XMLHttpRequest;c.open('GET',a);c.onload=b;c.send()}, 
display=function(){ 
    document.body.appendChild(document.createElement('table')).innerHTML=this.response; 
} 
window.onload=function(){ 
document.getElementsByTagName('button')[0].onclick=function(){ 
    x('example.php?ajax=true',display) 
} 
} 
</script> 
</head> 

<body> 
<button>Load the table</button> 
</body> 
</html><?php 
} 
?> 

一個更好的辦法是,以產生含表對象的PHP JSON文件.. 然後u有更多的選擇在JavaScript來顯示頁面。

0

將該腳本封裝在document.getElementByIDdocument.write方法中,根據您的頁面上下文選擇最適合您情況的方法。這是一個相當奇怪的方式去這個(AJAX更好),但是這應該爲你工作:

<script> 
function selectFunction() 
{ 
     document.write('<?php 
      error_reporting(0); 
      $con = mysqli_connect("localhost","root","","study"); 

      if (mysqli_connect_errno($con)) 
       { 
        $html= "Failed to connect to mysql" . mysqli_connect_error(); 
       } 
      $result = mysqli_query($con,"SELECT * FROM sample_employers"); 
      while($row=mysqli_fetch_array($result)) 
       { 
        $html= "<tr>"; 
        $html.= "<td>" . $row['firstname'] . "</td>"; 
        $html.= "<td>" . $row['lastname'] . "</td>"; 
        $html.= "<td>" . $row['middlename'] . "</td>"; 
        $html.= "<td> <input type='button' value='Delete' </td>"; 
        $html.= "</tr>"; 

       } 
      mysqli_close($con); 
      $html = addslashes($html); 
      echo $html; 
     ?>'); 
} 
</script> 
<!-- page contents here //--> 
<script> 
     selectFunction(); 
</script> 
相關問題