繁体   English   中英

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

[英]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");                                    
                        }
        });
    }

将{和}添加到a​​jax调用中

从表名和字段中删除引号

$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM