[英]AJAX update MYSQL database using function called from HTML generated from PHP
我有一个生成并显示表格的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);
?>
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 }
这段代码中有一些错误,让我一行一行地帮助你。
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脚本返回了一些错误,请使用一个警告
UPDATE
success: function(data){
alert(data); // this will print you any php / mysql error as an alert
}
更新2
像这样写你的onclick选项。
echo "<img onclick=\"like('" . $row['Username']. "');\"
src='like.jpg' alt='like/dislike image'
width='80px' height='30px' />";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.