2014-01-19 63 views
-1

我想在html中顯示數據庫表。我有以下的PHP代碼,將得到表和在HTML表格格式返回,它有沒有錯誤:
功能觀察平面() {通過javascript在html中顯示數據庫表

if(!$this->DBLogin()) 
    { 
     $this->HandleError("Database login failed!"); 
     return false; 
    } 

$qry = "select * from airplane"; 
$result = mysql_query($qry,$this->connection); 

echo "<table border='1'> 
<tr> 
<th>Registration Number</th> 
<th>Model Number</th> 
</tr>"; 

while($row=mysql_fetch_array($result)) 
{ 

echo "<tr>"; 
echo "<td>" . $row['Registration_Number'] . "</td>"; 
echo "<td>" . $row['Model_Number'] . "</td>"; 
echo "</tr>"; 

} 
echo "</table>"; 

} 

在HTML文件中,我的JavaScript代碼如下調用PHP函數,也應該把它添加到div:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $("#menu_active").click(function(){ 
     $("#table").after('<?php $test->viewplane(); ?>') 
    }); 
}); 
</script> 

代碼:

<?php $test->viewplane(); ?> 

WO當放在html之間時,爲什麼不工作?

+0

什麼是生成的JavaScript是什麼樣子?什麼是JavaScript錯誤控制檯說的HTML。裏面事項? – Quentin

+0

沒有錯誤,它只是不顯示任何東西。如果我替換代碼: viewplane(); ?>與它正常工作的字符串。 – gNazi

回答

0

可能有其他問題(如果你看看你的生成的JavaScript和你的JavaScript錯誤控制檯它可以幫助),但最起碼​​,這樣的:

<table border='1'> 
<tr> 

...包含不能使用轉義'字符在由'字符和換行字符分隔的JavaScript字符串中,這些字符不能在任何JavaScript字符串文字中使用。

您需要添加一些\ s,或者可能切換到使用json_encode函數,而不是手動構建字符串文字。

+0

你是對的'性格,但它不是問題。即使在刪除或編輯之後。 – gNazi

0

我認爲這是不正確的寫$("#table").after('<?php $test->viewplane(); ?>') JavaScript在瀏覽器中執行,所以在js執行過程中,它只是把<?php $test->viewplane(); ?>作爲一個簡單的字符串。

我的意思是,當你點擊"#menu_active",方法被調用後,但之後的方法是負責發送HTTP請求到服務器端獲取內容。

要實現您想要的功能,單擊"#menu_active"時可能需要Ajax調用。 類似$("selector here").load方法會有所幫助。

+0

是的,我明白了!你是對的。阿賈克斯是答案! – gNazi

0

我沒有看到一個表,表(#table)在你的代碼編號:

$("#table").after('<?php $test->viewplane(); ?>') 

如果選擇不jQuery的工作,沒有任何錯誤,它只是沒有做任何事情。

而且,這可能是這裏無關緊要,但有時PHP doesn't evaluate variables contained inside of single quotes。不知道這