我是AJAX的新手,所以我找到了一个教程并将其破解以适应我的PHP代码。这是一个“喜欢”按钮教程,在我的代码中,通过向数据库中添加“like”计数总数,它可以正常工作。
问题是,一旦我点击“喜欢”,喜欢的数量就不会更新(在页面上)。
原始教程代码工作正常,所以显然我做了一些愚蠢的事。
这是我的index.php
的代码function cwRating(id,type,target){
$.ajax({
type:'POST',
url:'rating.php',
data:'bt_id='+id+'&type='+type,
success:function(msg){
if(msg == 'err'){
alert('Some problem occured, please try again.');
}else{
$('#'+target).html(msg);
}
}
});
}
这就是它显示出类似数字的地方:
<span class="like" onClick="cwRating(<?php echo $row_bt['bt_id']; ?>,1,'like_count<?php echo $row_bt['bt_id']; ?>')"></span>
<span class="counter" id="like_count<?php echo $row_bt['bt_id']; ?>"><?php echo $row_bt['like_num']; ?></span>
这是整个rating.php页面:
include_once("likes.php");
$likes = new Likes();
if($_POST['bt_id']){
//previous tutorial data
$prev_record = $likes->get_rows($_POST['bt_id']);
//previous total likes
$prev_like = $prev_record['like_num'];
//calculates the numbers of like or dislike
if($_POST['type'] == 1){
$like = ($prev_like + 1);
$return_count = $like;
}else{
$like = $prev_like;
}
//store update data
$data = array('like_num'=>$like,'like_date'=>date("Y-m-d H:i:s"));
//update condition
$condition = array('bt_id'=>$_POST['bt_id']);
//update tutorial like dislike
$update = $likes->update($data,$condition);
//return like or dislike number if update is successful, otherwise return error
echo $update?$return_count:'err';
}
我想在.counter类中得到响应,我假设它只是需要调整的AJAX代码。
答案 0 :(得分:0)
您的PHP代码可能存在错误,请使用Google Chrome查看此内容。
1. Right click on your page and then select inspect element;
2. Click on the "Network" tab;
3. Find and click on your ajax request in "Name Path" column (rating.php);
4. Go to "Response" tab;
5. See the response of your ajax request.
答案 1 :(得分:0)
解决!我检查过&#34;网络&#34; Chrome中的标签看到了一些错误,主要是&#34; xmlhttprequest无法加载没有&#39; access-control-allow-origin&#39;&#34;。在我的AJAX帖子网址中,我删除了www。来自域名,现在一切正常。