jQuery/AJAX post() - 一些问题
Posted
技术标签:
【中文标题】jQuery/AJAX post() - 一些问题【英文标题】:jQuery/AJAX post() - a few problems 【发布时间】:2011-06-23 00:46:31 【问题描述】:我基本上是在一个用户反复点击一个按钮的网站上工作,每次点击都会增加他的分数。我不希望页面在每次点击之间刷新,所以我使用 AJAX。
我目前遇到的问题如下:
当我尝试将我的 javascript var
设置为 =
<? echo $result['count']; ?>
时,它似乎不起作用。
我不明白如何正确使用 PDO 到 UPDATE
一个 mysql 表,查询中有计算,例如 $update = $dbh->execute("UPDATE count SET count='$count'+1 WHERE username='$username'");
。这是计算的正确语法吗?这是在 PDO 中执行此操作的正确方法吗?
这是我用于点击系统的测试页面的代码:
<html>
<?php
$hostname = 'localhost';
$username2 = 'refrigerator';
$password = 'xxx';
$dbh = new PDO("mysql:host=$hostname;dbname=refrigerator", $username2, $password);
$username = $_COOKIE["user"];
$rows = $dbh->prepare("SELECT count FROM count WHERE username = '$username'");
$rows->execute();
$result = $rows->fetchALL();
$result['count'] = $count;
if(isset($_POST['action']))
if ($_POST['action'] == 'increase')
$update = $dbh->execute("UPDATE count SET count='$count'+1 WHERE username='$username'");
?>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
var count = <? echo $result['count']; ?>;
$("#update").click(function()
$.ajax(
type: "POST",
url: "button.php",
data: "action":"increase",
success: function(update)
count++;
$("#counter").html(+count);
);
);
);
</script>
<button id="update" type="button">Button</button>
<div id="counter"><? echo $result['count']; ?></div>
</body>
</html>
非常感谢,任何帮助将不胜感激。即使你能指出我正确的方向,这将帮助我回答我的问题,那也很棒。
谢谢
【问题讨论】:
您确定您的标签设置正确吗?您可能无法使用<? ... ?>
,可能需要使用<?php ... ?>
@Dutchie432 感谢您的回复,我很确定我需要使用短标签,因为当我使用完整标签时,我收到一条错误消息,指出变量 $result 未定义或东西。
在$result['count'] = $count;
行之后,如果你输入die($result['count'])
- 你看到预期的结果了吗?
@Dutchie432 再次感谢,这根本没有返回任何东西,所以它一定是 PDO 的问题。我确实收到通知,第 14 行 ($result['count'] = $count;
) 上有一个未定义的变量“计数”,我不太明白,因为我在该行中定义了该变量......有什么想法吗?谢谢
您需要再次检查。你永远不会定义$count
【参考方案1】:
你应该有:
$count = $result['count'];
代替:
$result['count'] = $count;
= 符号左侧的变量是从 = 符号右侧的任何值接收赋值的变量。
在您的更新语句中,您可以这样做,而不是使用您的计数变量:
$update = $dbh->execute("UPDATE count SET count=count+1 WHERE username='$username'");
【讨论】:
以上是关于jQuery/AJAX post() - 一些问题的主要内容,如果未能解决你的问题,请参考以下文章
将 jquery ajax POST 请求更改为 fetch api POST
jQuery Ajax实例 ($.ajax_$.post_$.get)