AJAX 使用从 PHP 生成的 HTML 调用的函数更新 MYSQL 数据库
Posted
技术标签:
【中文标题】AJAX 使用从 PHP 生成的 HTML 调用的函数更新 MYSQL 数据库【英文标题】:AJAX update MYSQL database using function called from HTML generated from PHP 【发布时间】:2013-12-22 15:41:24 【问题描述】:我有一个生成和显示表格的 php 页面。对于表中的最后一行,我想显示一个附加了“onclick”功能的图像。这会将所选行的用户名发送到将使用 AJAX 更新数据库的脚本。该表显示正常,但 AJAX 无法正常工作。我显示图像的 php 是:
echo "<td> <img id='tblimg'
onclick='like('" . $row['Username'] . "')'
src='like.jpg' alt='like/dislike image'
width='80px' height='30px'></td>";
javascript函数是:
<script type="text/javascript" >
function like(user)
$.ajax(
url: "update.php",
type: "POST",
data: 'username': user, 'liked': '1' ,
success: function()
alert("ok");
);
</script>
这里是update.php:
<?php
$con=mysqli_connect("","sam74","********","sam74");
// Check connection
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
$Username = $_POST['username'];
$Liked = $_POST['liked'];
$sql = "UPDATE 'followers' SET 'Liked' = '$Liked' WHERE 'Username' = '$Username'";
if (!mysqli_query($con,$sql))
die('Error: ' . mysqli_error($con));
mysqli_close($con);
?>
【问题讨论】:
你可以试试 Firebug,看看你在调用 update.php 后得到了什么响应。 【参考方案1】:这段代码有一些错误,让我逐行帮助你。
echo "<td> <img id='tblimg'
onclick=\'like('" . $row['Username'] . "');\'
src='like.jpg' alt='like/dislike image'
width='80px' height='30px'></td>";
javascript函数是:
首先为 onclick 事件转义引号
function like(user)
$.ajax(
url: "update.php",
type: "POST",
data: 'username': user, 'liked': '1' ,
success: function()
alert("ok");
);
将 和 添加到 ajax 调用
从表名和字段中删除引号
$sql = "UPDATE followers SET Liked = '$Liked' WHERE Username = '$Username'";
在 ajax 成功和函数开始后,您总是可以打印一条消息以查看您的函数是否正在被调用,如果 php 脚本返回一些错误,请为此使用警报
更新
success: function(data)
alert(data); // this will print you any php / mysql error as an alert
更新 2
像这样写你的点击选项。
echo "<img onclick=\"like('" . $row['Username']. "');\"
src='like.jpg' alt='like/dislike image'
width='80px' height='30px' />";
【讨论】:
检查我的答案“更新”后添加的代码,如果它帮助你让我知道。 非常感谢。我还安装了 firebug,这一直在帮助我实际上能够查看已发布到 update.php 的内容。现在,当我创建我试图从页面上其他地方的 php echo 显示的 img 元素的副本时,它可以工作了。仍然试图让我的头脑围绕回声中的引号。反斜杠有什么用?我目前正在尝试的回声是这样的: echo "jQuery.ajax()
函数期望传递一个对象;您需要使用 和
来开始和结束您的对象文字。您当前拥有的是无效的 JavaScript 语法,如果您检查浏览器的开发人员工具,您会看到一个错误指示。所以:
$.ajax(
url: "update.php",
type: "POST",
data:
'username': user,
'liked': '1'
,
success: function ()
alert("ok");
);
应该是
$.ajax( // added
url: "update.php",
type: "POST",
data:
'username': user,
'liked': '1'
,
success: function ()
alert("ok");
); // added
【讨论】:
以上是关于AJAX 使用从 PHP 生成的 HTML 调用的函数更新 MYSQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章
Ajax表单提交我想通过id更改表单元素的值,以便脚本从php中的返回值进行下一次调用