0

我可以使用以下代码向 mysql 数据库发送查询:

$sql = mysql_query("INSERT INTO wall VALUES('', '$message', '$replyno')");

我的问题是,有什么方法可以通过单击某些文本来发送查询。

举个例子:有一个文本名称Reply。我希望如果我单击此回复文本,则 mysql 数据库字段值(字段名称:回复,类型:int)将增加 1。

对不起,我不知道 JAVASCRIPT/AJAX:(

@DEVELOPER 的最终更新程序代码:

<html>
<head>
<title>Untitled Document</title>
</head>
<script language="javascript">
$("#mylink").click(function() {
$.ajax({
url: "test.php"
}).done(function() { 
$(this).addClass("done");
});
});
</script>
<body>
echo "<a href='#' id='mylink'>Reply</a>";
</body>
</html>
Php page:
<?php
include("database/db.php");
$sql = mysql_query("INSERT INTO wall VALUES('','','','','','','','1');");
?>
4

3 回答 3

1

您应该使用 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();
}
?>

或者尝试检查您的服务器错误日志。

于 2012-05-21T05:47:10.227 回答
0
$sql = mysql_query("INSERT INTO wall VALUES('', '$message', '$replyno')");

您必须像这样使用 jquery 和 ajax:-

<script type="text/javascript">
    $j(document).ready(function() {
        $j('#reply').click(function(){

    jQuery.ajax({
                url: "test.php", //Your url detail
                type: 'POST' ,
                data: ,
                success: function(response){
   }
  });
 });
});
</script>
于 2012-05-21T05:52:41.727 回答
0

在文件“updat_post.php”中写入:

If(isset($_GET['visit_post']))
     $pdo->query('update posts set counter = counter+1');

在文档准备好的 js/jquery 文件中写入:

$('#mybutton').click(function() {
    $.post('update_post.php', {visit_post: true});
});
于 2012-05-21T06:25:11.270 回答