Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用jquery构建like计数器?_Php_Javascript_Jquery - Fatal编程技术网

Php 如何使用jquery构建like计数器?

Php 如何使用jquery构建like计数器?,php,javascript,jquery,Php,Javascript,Jquery,我想在facebook上做一个类似的计数器。我将用消息id从数据库中加载各种帖子。我想制作like(这里是“pray”)计数器,它应该在页面后面使用jquery和ajax。我无法获取特定的消息id(mid)。代码在这里 jQuery: $(document).ready(function () { $("div.pray").click( function() { var mid=$(this).val(); $.ajax( {

我想在facebook上做一个类似的计数器。我将用消息id从数据库中加载各种帖子。我想制作like(这里是“pray”)计数器,它应该在页面后面使用jquery和ajax。我无法获取特定的消息id(mid)。代码在这里

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");
            }
    });
});
    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";
    }
?>
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";
    }
?>
session_start();
if(isset($\u会话['usrid']))
{
$usr=$\u会话['usrid'];
包括('dbcon.php');
$cot=“select*from posts,其中userid=$usr LIMIT 10”;//按事件日期描述、事件小时描述“LIMIT0,10”排序;
$ex=mysql\u查询($cot,$con);
而($cont=mysql\u fetch\u数组($ex))
{
$date=date\u创建($cont['date']);
$mid=$cont['mid'];
回声“;
echo$cont['message'];
回声$照片;
回声“;
回声“;
回声“;
echo“祈祷”(.cont.[祈祷])”;
echo date_格式($date,'d-m-Y H:i:s');
回声“
”; 回声“; } } 其他的 { 回显“登录查看”; } ?>

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

javascript
放在
php脚本之后,然后检查。如果失败,请将
.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();


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

在html代码中,尝试以下操作:

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

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

javascript
放在
php脚本之后,如果我提醒mid说未定义,请检查我不能获取mid(消息id)。我想获取从数据库检索到的消息id。我已经把它传给了文本框,但如果我可以使用任何其他可用的方法,就没有必要传给那个文本框。我只是用了,因为我不知道其他的方法。告诉我如何在加载帖子时从数据库中获取消息id。我导航到increment.php页面。我不想导航,我想在页面后面安静地导航,就像在facebook上一样。对不起,忘了包含preventDefault(),编辑了答案
$(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);
       }
  });
});