Php 如何使用jquery构建like计数器?
我想在facebook上做一个类似的计数器。我将用消息id从数据库中加载各种帖子。我想制作like(这里是“pray”)计数器,它应该在页面后面使用jquery和ajax。我无法获取特定的消息id(mid)。代码在这里 jQuery: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( {
$(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'].")    ";
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'].")    ";
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);
}
});
});