【问题标题】:AJAX to update database via functionAJAX 通过函数更新数据库
【发布时间】:2013-11-07 00:13:37
【问题描述】:

我正在尝试使用 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">';

我的upvote.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">'; 
?>

【问题讨论】:

    标签: javascript php jquery ajax echo


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      语法错误

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

      【讨论】:

        【解决方案3】:
        <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']

        【讨论】:

        • 感谢您的澄清。尝试了您的代码,但当我按下图像时没有任何反应。
        【解决方案4】:
        <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>
        

        你没有为 upvote 函数传递第二个参数。

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

        【讨论】:

        • 我尝试了您的解决方案,但单击图像时仍然没有任何反应。
        • 我将如何创建一个 AJAX 文件并在我的索引文件中调用它?
        • 所以只是为了澄清。我应该把我的 php 代码放在你发布的 javascript 代码中??
        • 好吧,我不确定我是否理解。这就是我所做的,但它不起作用:/ pastebin.com/ZWvBnsU5
        • 对不起,我被创建的混乱.. 只是你需要在 upvote 函数调用中传递第二个参数.. 我编辑了我的答案.. 如果它有效,那么接受我的答案。
        猜你喜欢
        • 1970-01-01
        • 2011-10-28
        • 2016-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多