0

我正在寻找像在 facebook 中一样的类似计数器。我将从数据库中加载带有消息 ID 的各种帖子。我想做点赞(这里是“祈祷”)计数器,它应该在页面后面使用 jquery 和 ajax。我无法获得特定的消息 ID(中)。这里的代码是

jQuery:

$(document).ready(function () {
    $("div.pray").click( function()
    {
        var mid=$(this).val();
        $.ajax(
        {
            type:"POST",
            url:"increment.php",
            data:'mid='+mid,
            success:function ()
            {
                $("div.pray").text("Prayed");
            }
    });
});

PHP:

    session_start();
    if(isset($_SESSION['usrid']))
    {
        $usr = $_SESSION['usrid'];
        include('dbcon.php');
        $cot = "select * from posts where userid=$usr LIMIT 10";// order by eventDate        DESC, eventHour DESC" LIMIT0,10";
        $ex = mysql_query($cot,$con);

        while($cont=mysql_fetch_array($ex))
        {
            $date = date_create($cont['date']);
            $mid=$cont['mid'];
            echo "<div id='posts'>";
            echo $cont['message'];
            echo $photo;
            echo "<div class='pray'>"; 
            echo "<input type='hidden' class='mid' value='$mid'>"; 
            echo "<a href='#'>Pray</a></div>";
            echo "Prayed(".$cont['prayers'].")&nbsp;&nbsp&nbsp;&nbsp";
            echo date_format($date, 'd-m-Y H:i:s');
            echo "<hr>";
            echo "</div>";
        }
    }
    else
    {
        echo "Login to see";
    }
?>

我只想替换我单击为祈祷的消息,并且它应该加载当前的祈祷数。

4

2 回答 2

0

把你的放在你的javascript 后面php script并检查。如果失败,请将您的.click()处理程序更改为,

$(document).on('click', 'div.pray', function(){
    var mid=$(this).children('.mid').val();
    $.ajax(
    {
         type:"POST",
         url:"increment.php",
         data:'mid='+mid,
         success:function ()
         {
              $("div.pray").text("Prayed");
         }
    });

    //rest of your code
})

请注意,我已将第一行从

var mid=$(this).val();

var mid=$(this).children('.mid').val();

作为,$(this)将选择div.pray而不是input.mid元素。

于 2013-06-13T10:02:37.020 回答
0

在 html 代码中尝试这样的事情:

echo "<a href='increment.php?mid=$mid'>Pray</a></div>";

在 JavaScript 中:

$(document).on('click', 'div.pray', function(e){
   e.preventDefault();
   var $target = $(e.target).closest('a');
   $.ajax({
       type:"POST",
       url: $target.attr('href'),
       success:function (data){
          $target.closest("div.pray").html(data);
       }
  });
});

在 ajax 响应中,html代码应该进入div.pray

于 2013-06-13T10:09:35.407 回答