我有一个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);
?>
该代码中有一些错误,请允许我逐行帮助您。
echo "<td> <img id='tblimg' onclick=\'like('" . $row['Username'] . "');\' src='like.jpg' alt='like/dislike image' width='80px' height='30px'></td>";
首先为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
这样编写您的onclick选项。
echo "<img onclick=\"like('" . $row['Username']. "');\" src='like.jpg' alt='like/dislike image' width='80px' height='30px' />";