AJAX使用从PHP生成的HTML调用的函数更新MYSQL数据库

use*_*866 6 javascript php mysql sql ajax

我有一个生成并显示表格的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>";
Run Code Online (Sandbox Code Playgroud)

javascript函数是:

<script type="text/javascript" >

        function like(user) 
        {

            $.ajax(
                url: "update.php",
                type: "POST",
                data: { 'username': user, 'liked': '1' },                   
                success: function()
                            {
                                alert("ok");                                    
                            }
            );
        }

</script>       
Run Code Online (Sandbox Code Playgroud)

这是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);
Run Code Online (Sandbox Code Playgroud)

?>

Cor*_*ius 1

这段代码有一些错误,让我逐行帮助你。

echo "<td> <img id='tblimg' 
onclick=\'like('" . $row['Username'] . "');\' 
src='like.jpg' alt='like/dislike image' 
width='80px' height='30px'></td>";
Run Code Online (Sandbox Code Playgroud)

JavaScript 函数是:

首先转义 onclick 事件的引号

    function like(user) 
    {

        $.ajax({
            url: "update.php",
            type: "POST",
            data: { 'username': user, 'liked': '1' },                   
            success: function()
                        {
                            alert("ok");                                    
                        }
        });
    }
Run Code Online (Sandbox Code Playgroud)

将 { 和 } 添加到 ajax 调用中

删除表名和字段中的引号

$sql = "UPDATE followers SET Liked = '$Liked' WHERE Username = '$Username'";
Run Code Online (Sandbox Code Playgroud)

在 ajax 成功且函数开始后,您始终可以打印一条消息以查看您的函数是否正在被调用,如果 php 脚本返回一些错误,请使用警报

更新

success: function(data){
   alert(data); // this will print you any php / mysql error as an alert                                    
}
Run Code Online (Sandbox Code Playgroud)

更新2

像这样编写你的 onclick 选项。

echo "<img onclick=\"like('" . $row['Username']. "');\" 
src='like.jpg' alt='like/dislike image' 
width='80px' height='30px' />";
Run Code Online (Sandbox Code Playgroud)