【发布时间】:2014-07-22 18:44:58
【问题描述】:
我是 php 新手。我在 php 中有一个函数,执行时会从数据库返回结果。当我使用 onclick 方法在我的 html 页面中使用此功能时,它不起作用。你能帮帮我吗? 下面是包含函数的页面 author.php 的代码-
<?php
function author_list()
{
global $con;
$con=mysqli_connect("localhost","root","","project");
if(mysqli_connect_errno())
{
echo "failed to connect".mysqli_connect_errno();
}
$author=mysqli_query($con,"select * from english where author='".$SBA."' ");
echo"<table>";
while($data=mysqli_fetch_array($author))
{
echo"<tr>";
echo"<td>".$data['genre'];
echo"<td>".$data['author'];
echo"<td>".$data['title'];
echo"<td>".$data['year'];
echo"<td>".$data['avail'];
}
echo"</table>";
mysqli_close($con);
}
?>
下面是html页面的部分代码,我必须在onclick上设置上述功能:
<form action="author.php" method=GET>
Search By Author:<input type="text" name="SBA" value=""><br>
<input type="submit" value="submit" onclick= "author_list()">
它只是在页面上按原样打印函数的“while 循环”部分。我也被允许使用 javascript(如果有帮助的话)。 你能帮帮我吗?
【问题讨论】:
-
你需要了解服务端和客户端的区别。
-
使用
isset()并命名您的提交按钮。 -
onclick属性用于执行 Javascript。请对客户端和服务器端编程之间的差异进行一些研究。 -
另外,你最好使用 POST 而不是 GET(使用你正在使用的东西),除此之外还有可能的 SQL 注入。我倾向于回避 GET,而且使用准备好的语句是给定的。
-
在 author.php 中,你不应该在某个时候从表单中恢复值吗?由于您使用的是 GET,因此您的代码中应该有某处 $SBA = $_GET['SBA'] 将从提交的表单中恢复值。您必须先转义该值,然后再在查询中使用它,或者最好使用准备好的查询来避免 sql 注入。
标签: javascript php html mysqli