AJAX 通过函数更新数据库

AJAX to update database via function

本文关键字:更新 数据库 函数 AJAX      更新时间:2023-09-26

我正在尝试使用 AJAX 更新数据库中的一些数据。我已经制作了 php 脚本并测试了它确实在工作。我需要将两个变量传递给更新数据库的 php 脚本,所以我创建了一个 javascript 函数,它使用 ajax 调用 php 脚本并传递变量。

我想在用户单击我制作的点赞图像时运行该功能。然后,应更新数据库中的数据,并且需要更新点赞按钮和显示当前点赞数的数字。

这是我的javascript:

 <script type="text/javascript">
    function upvote(memeid, userid)
    {
        $.ajax({
            url : 'scripts/upvote.php', // give complete url here
            type : 'post',
            data : 'id='+memeid+'&bruger_id='+userid,
            success : function(msg){
                alert('success');
            }
        });
    });
    </script>

这是从中调用函数的 php 代码。

echo '<img id="upvote" onClick="upvote('.$feed[$loaded]["memid"].','.$feed[$loaded]["userid"].')" src="images/neutral_up.png" width="20px">';

我的赞成票.php文件:

<?php
    //Script til at upvote memet
    include 'db_connect.php';//Connect til databasen
    $id = $_POST['id'];//Memets id som fanges fra linket
    $bruger_id = $_POST['bruger_id'];//Brugerens id som fanges fra linket
    $cookiename = "yems".$id;//Sætter navn på cookie ud fra memets id
    if($_COOKIE[$cookiename] == 2)//Hvis brugeren allerede har downvoted memet
    {
        mysql_query("UPDATE memes SET ned=ned-1 WHERE id='".$id."'");//Fjern en downvote fra memets
        mysql_query("UPDATE memes SET up=up+1 WHERE id='".$id."'");//Tilføj en upvote til memet
        mysql_query("UPDATE brugere SET up=up+1 WHERE id='".$bruger_id."'");//Giv brugeren som har lavet memet en upvote
        mysql_query("UPDATE brugere SET ned=ned-1 WHERE id='".$bruger_id."'");//Fjern en downvote fra brugeren som har uploadet memet
        $expire=time()+60*60*24*365*10;//Sæt en expire tid på 10 år til cookien 
        setcookie($cookiename, "1", $expire, '/');//Sæt cookie som siger at den nuværende bruger har upvoted memet.
    }else if($_COOKIE[$cookiename] != 1){//Hvis den nuværende bruger ikke allerede har upvoted eller downvoted memet.
        mysql_query("UPDATE memes SET up=up+1 WHERE id='".$id."'");//Giv memet en upvote
        mysql_query("UPDATE brugere SET up=up+1 WHERE id='".$bruger_id."'");//Giv brugeren som har lavet memet en upvote.
        $expire=time()+60*60*24*365*10;//Sæt en expire tid på 10 år til cookien 
        setcookie($cookiename, "1", $expire, '/');//Sæt cookie som siger at den nuværende bruger har upvoted memet.
    }
    echo '<META HTTP-EQUIV="Refresh" Content="0; URL=../index.php">'; 
?>
<script type="text/javascrip">
    function upvote(memeid, userid)
    {
        $.ajax({
            url : 'scripts/upvote.php', // give complete url here
            type : 'post',
            data : 'id='+memeid+'&userid='+userid,
            success : function(msg){
                alert('success');
            }
        });
    });
</script>

您没有传递赞成函数的第二个参数。

echo '<img id="upvote" onclick="upvote('.$feed[$loaded]["memid"].','.$feed[$loaded]["userid"].')" src="images/neutral_up.png" width="20px">';

你应该阅读jQuery的文档: http://api.jquery.com/jQuery.ajax/
您的行"var myData = ..."不正确,请将其替换为 data : { (key : value object) }(有关更多详细信息,请参阅文档)

语法错误

$.ajax({
   url : 'scripts/upvote.php?id='+memeid+'&'+userid, // give complete url here
   type : 'post',
   data:{'id' : 'id...'},
   success : function(data){
      alert('success');
   }
});
<script type="text/javascrip">
        function upvote(memeid, userid)
        {
            $.ajax({
            url : 'scripts/upvote.php
            type : 'post',
            data = {member_id:memeid, user_id:userid},
            success : function(data){
                alert('success');
            }
        });
    });
</script>

在 php 中,您可以使用 $_POST['member_id'] 和 $_POST['user_id'] 获取数据。