通过javascript在html中显示数据库表

时间:2014-01-19 23:57:39

标签: javascript php jquery html mysql

我正在尝试在html中显示数据库表。我有以下PHP代码将获取表并以html表格式返回它没有错误:
    function viewPlane()     {

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文件中,我有以下调用php函数的javascript代码,并假设将其添加到div:

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

代码:

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

在放入html中时起作用,为什么不起作用?

3 个答案:

答案 0 :(得分:0)

可能存在其他问题(如果您查看生成的JavaScript和JavaScript错误控制台会有帮助),但至少,这个:

<table border='1'>
<tr>

...包含'个字符,这些字符无法在用'个字符分隔的JavaScript字符串文字中使用,并且不能在任何JavaScript字符串文字中使用未换行的新行字符。

您需要添加一些\,或者可能切换到使用json_encode函数,而不是手动构建字符串文字。

答案 1 :(得分:0)

我认为写$("#table").after('<?php $test->viewplane(); ?>')是不正确的 javascript在浏览器中执行,因此在js执行过程中,它只是将<?php $test->viewplane(); ?>视为一个简单的字符串。

我的意思是当你点击"#menu_active"时,会调用after方法,但是after方法负责向服务器端发送http请求以获取内容。

要实现您的目标,单击"#menu_active"时可能需要进行Ajax调用。 像$("selector here").load方法之类的东西会有所帮助。

答案 2 :(得分:0)

我没有在代码中看到一个id为table的表(#table)

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

如果选择器在jQuery中不起作用,那就没有错误它只是没有做任何事情。

此外,这可能与此无关,但有时候PHP doesn't evaluate variables contained inside of single quotes。不确定HTML内部是否重要。