网上找到到了这个jquery插件,改了一下,但是顶一下后数字不会马上变换,而是需要刷新一下才会变,郁闷!!
请高手续帮忙。页面JS部分<script type="text/javascript">
<!--
function dig(){
if($.cookie('digg_aid_<?php echo $row_news[id] ?>') == 1){
$('#RateMsg').html('您已顶过了!').fadeIn('slow');
setTimeout(function(){
//$("#RateMsg").hide();
},2000);
}else{
$.ajax({ url: "ajax.php",
  type:"get",           
 dataType:"html",
 data: "do=dig&aid=<?php echo $row_news[id] ?>&r="+Math.random(),
 success:function(msg){ 
   $("#Dig").html(msg);
   $("#Dingbutton").html('已顶成');
 } 
});
 }
}
//-->
</script>
程序部分<?php
require_once("../inc/db.php");

$id =(int)$_GET['aid'];

$sql_news="select * from news where id='$id'";
$res_news=mysql_query($sql_news);
$row_news=mysql_fetch_array($res_news);

if($_COOKIE['digg_aid_'.$id]==1){
echo $row_news[ding];
}else{
setcookie ("digg_aid_".$id, 1, time() + 3600);
$sql_up="update news set ding=ding+1 where id='$id'";
$res_up=mysql_query($sql_up);
echo $row_news[ding];
}
?>
不知道哪里有问题。。请教了!!!

解决方案 »

  1.   

    请求完毕后要在js中修改html页面中的某些数据(如此就会形成无刷新动态显示数据)
      

  2.   

    改哪些你需要让其更新的东西,例如:
    <span id="span">已踩踩了1次</span>
    <script>
    span.innerHTML = "已被踩了" + x + "次";//x是你ajax的动态数据
    </script>类似如此才会不用刷新而改变页面的数据
      

  3.   

    你有 $("#Dig").html(msg);
    那么这个 id='Dig' 的 div 或 span 存在吗?
      

  4.   

    <span id="Dig"></span>
    这个中间怎么写呢??
      

  5.   

    不是js的问题,是php里的问题
            $sql_up="update news set ding=ding+1 where id='$id'";
            $res_up=mysql_query($sql_up);
            echo $row_news[ding];
    你这边update以后,但是echo 的还是原来的数据$row_news=mysql_fetch_array($res_news);而不是跟新以后的数据,所以只有刷新后才变化
    最简单的,重新从数据库取一遍数据
      

  6.   

    正如六楼所说,你返回给jQuery的数据不是更改后的数据,而是更改前查询得到的那个值!