2010-02-12 109 views
0

我有一个表显示用户建议,他们已经收到点击阅读更多的一些ajax被解雇,并在数据库中的建议被标记为已读。目前如果建议是新的,我会显示一个封闭的信封,如果它被读取,我会显示一个打开的信封,但是当用户单击阅读更多链接以便可以添加新类时,我可以重新加载表格。目前它的一半工作,他们点击阅读更多和完整的建议淡入,但我需要信封也改变。链接点击更新结果后重新加载表

<table> 
     <?php 
      $colours = array("#f9f9f9", "#f3f3f3"); $count = 0; 
      if(isset($newSuggestions)) { 
       foreach($newSuggestions as $row) { 
       if($row['commentRead'] == 0) { 
        $newRow = "new"; 
       } else { 
        $newRow = "old"; 
       } 
     ?> 
         <tr id="a<?=$row['thoughtId'];?>" bgcolor="<?php echo $colours[$count++ % count($colours)];?>"> 
     <?php 
          echo "<td class='".$newRow."'>".substr($row['thought'], 0,50)."...</td>"; 
          echo "<td class='read'><a href='".base_url()."thought/readSuggestion/".$row['thoughtId']."' class='readMore'>Read More</a>"; 
         echo "</tr>"; 
        } 
       } else { 
       echo "You have no new suggestions"; 
       } 
     ?> 
     </table> 
    </div><!--/popular--> 

    </div><!--/widget--> 
     <div id="readMore"> 

     </div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
    //alert("hello"); 
    $('#tabvanilla').tabs({ fx: { opacity: 'toggle', height:'toggle' } }); 
     $('a.readMore').click(function(){ 
      $('#readMore').fadeIn(500); 
      var url = $(this).attr('href'); 

      $.ajax({ 
       url : url, 
       type : "POST", 
       success : function(html) { 
        $('#readMore').html(html) 
       }, 
       complete : function(html) { 
        $('table').html() 
       } 
      }); 
      return false; 
     }); 
}); 
</script> 

回答

1

在JavaScript中,你打开/填写完整的建议,您可以修改信封的图像,以及,使用类似:

$('#envelope').attr('src', 'src/to/envelope.png'); 

我看不出有任何的img标签,所以你需要添加一个并填入id,以便通过JavaScript找到它。

顺便说一句:HTML和PHP在同一行/部分,使总数非常不可读。只对大PHP代码块使用<?php ... ?>,否则使用echo(或类似的东西)。