您应该使用 jQuery 将此链接或按钮连接到 ajax 调用
http://api.jquery.com/jQuery.ajax/
它应该调用一个 php 页面,其中包含您要运行的查询。您也可以通过 ajax 调用传入参数,以便在执行之前正确设置 $message 和 $replyno。
<script>
$("#mylink").click(function() {
$data = $("#myform").serialize();
$.ajax({
url: "postquery.php",
data: $data
}).done(function() {
$(this).addClass("done");
});
});
</script>
那么您的 php 页面将如下所示:
<?php
...
$message = mysql_real_escape_string($_REQUEST['message']);
$replyno = mysql_real_escape_string($_REQUEST['replyno']);
$sql = mysql_query("INSERT INTO wall VALUES('', '$message', '$replyno')");
....
?>
使用“mysql_real_escape_string”对传入的字符串进行转义对于防止对数据库的 SQL 注入攻击总是很重要的。
您的 HTML 应如下所示:
<html>
...
<input type="textarea"></input>
<a href="#" id="mylink">Reply</a>
...
</html>
这将导致前面提到的 jquery 语句在单击“回复”时触发。
这是您更新的代码。我更正了链接 ID 并删除了表单序列化数据,因为您的测试代码似乎不需要它。我还添加了对 jQuery 库的引用:
<html>
<head>
<title>Untitled Document</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script language="javascript">
$("#mylink").click(function() {
$.ajax({
url: "test.php"
}).done(function() {
$(this).addClass("done");
});
});
</script>
</head>
<body>
<a href='#' id='mylink'>Reply</a>
</body>
</html>
您可能看到的问题是由于您的查询,而不是前端代码。尝试添加一些调试代码,如下所示:
<?php
include("database/db.php");
$sql = mysql_query("INSERT INTO wall VALUES('','','','','','','','1');");
if(!$sql)
{
echo mysql_error();
}
?>
或者尝试检查您的服务器错误日志。