我使用ajax()
在我的网站上制作了“喜欢/不喜欢”系统。点击div
,将其内容从like
更改为dislike
,并在其附近更新总喜欢的数量。
有时第一个AJAX调用(喜欢不喜欢)的工作方式是否完美,但总喜欢的数字却没有。有任何想法吗?是因为一次点击共有2个AJAX调用吗?它发生在20岁左右。
由于
这是两个跨度;
<span id='like' class='span_like'>Like</span>
<span id='nlikes'></span>
这是两个$ .ajax()调用。第一个将内容从“喜欢”更改为“不喜欢”(或反之),并更新数据库中的“喜欢”。
第二个电话会计算总喜欢的号码,并在<span id='nlikes'></span>
。
$('#like').click(function(){
var call1 = $.ajax({
url: 'relative_comments_likes_number+1.php',
type: 'GET',
data: {id : '".$loopCMR['id']."'},
dataType: 'text'
});
call1.done(function(data){
$('#like').text(data)})
var call2 = $.ajax({
url: 'comment_likes_number_add_drop.php',
type: 'GET',
data: {value : '".$loopCMR['id']."'},
dataType: 'text'
});
call2.done(function(data){
$('#nlikes').text(data)})
})
......这些是两个php文件
第一个电话
<?php session_start();
include("DB_connection.php");
$id=$_GET['id'];
$liked_q=mysql_query("SELECT * FROM comments_like WHERE
liked_by='".$_SESSION['username']."' AND id='".$id."'");
$response=mysql_num_rows($liked_q);
if($response==0)
{
$query=mysql_query("INSERT
INSERT INTO comments_like(id,liked_by,code)VALUES('".$id."',
'".$_SESSION['username']."','".$_SESSION['v']."')");
echo"Unlike";}
if($response==1)
{$query2=mysql_query("DELETE FROM comments_like WHERE
liked_by='".$_SESSION['username']."' AND id='".$id."'");
echo"Like";}
?>
第二个电话是......
<?php session_start();
include("DB_connection.php");
$id = $_REQUEST['value'];
$query = mysql_query("SELECT * FROM comments_like WHERE id='".$id."'");
$rows = mysql_num_rows($query);
if($rows == 0){
echo '';
}else{
echo " (".$rows.")";}
?>
所以......一切都很完美..但偶尔第二次调用不起作用......
答案 0 :(得分:0)
不建议进行此类双重调用。而是这样做
var loopCMR = "<PHP echo $loopCMR['id']; ?>";
$('#like').click(function () {
var call1 = $.ajax({
url: 'relative_comments_likes_number+1.php',
type: 'GET',
data: { id: loopCMR },
dataType: 'text'
}).done(function (data) {
$('#like').text(data);
var call2 = $.ajax({
url: 'comment_likes_number_add_drop.php',
type: 'GET',
data: { value: loopCMR },
dataType: 'text'
}).done(function (data) {
$('#nlikes').text(data)
});
});
});
或只有一个PHP返回两个值