js/jq中ajax提交问题

L_Lawliet 发布于 2013/11/26 20:47
阅读 886
收藏 1
是这样的,我想做一个评论系统,类似于微博那样每条微博可以点击评论展示出一个评论框。但是我是用ajax异步提交评论框表单的,这样就遇到一个问题,ajax如何去判断用户所点击的评论表单具体是哪一个
加载中
0
lazyphp
lazyphp
<?php foreach(....):?>
..杂七..
<a href="javascript" onclick="comment('<?php echo $id'?>')">评论</a>
..杂八..
<?php endforeach; ?>

在点击 评论的瞬间,提交一个对应文本的ID不就可以了? 你弹出编辑框时,还要去获取对应的评论列表咧。。


lazyphp
lazyphp
回复 @four28 : = =。估计你把 HTML的ID 和 文本ID搞混了。我说的文本ID 是对应数据库的ID值。
L_Lawliet
L_Lawliet
还是有问题~~~因为我点评论····id都不一样难道有多少id就要写多少jq事件函数吗?如果id相同又会因为冲突只有第一个有效
lazyphp
lazyphp
回复 @four28 : 思路大概是这样的。别想得太复杂。 点击 “评论”这个链接时,js已经获取了对应的文本ID,然后执行ajax ,获取评论内容。显示 评论输入框和评论列表。。。
L_Lawliet
L_Lawliet
微博不可能是这样实现的吧
0
顺其自然001
顺其自然001
难道你的评论没id,点击时记录就行
L_Lawliet
L_Lawliet
是有id可是ajax要绑定一个按钮提交我无法拿到那个id
0
-Jw-
-Jw-
$(this) 就是指向自己的
-Jw-
-Jw-
回复 @four28 : 你点击那个按钮 $(this) 指的就是你按的按钮 然后你按照你的html的结构 利用parent 或者 find 之类的方法 在后面append或者什么也好 加上html 代码
L_Lawliet
L_Lawliet
好像能解决····但是有个问题····一堆的评论按钮····要怎么确定点击的是哪一个然后再对应的按钮下面显示评论框
0
周伟东
周伟东

有很多处理的方式!

第一个,因为是点击展开一个输入框,点击可能是个javascript方法,这个可以带个本评论的ID,创建的输入框ID,是个类似xxxxID的格式。

第二个,就是这个点开展的输入框是在某个html标记内的,比如ul 或 div这样的,给这些ul或div 的标记设置ID的格式也是xxxxID,这种方法,可以利用jq的find来查找输入框处理。

第三个,还可以使用弹窗层模式,也是要传入当前评论ID的.

0
lazyphp
lazyphp
<?php foreach($post as $key => $value):?>
<div class="content">
   <p><?php echo $value['content'];?></p>
   <span><a href="javascript:void(0);" id="<?php echo $value['id'];?>" class="listComment">评论(<?php echo $value['totalComment'];?>)</a></span>
</div>
<?php endforeach;?>

上面的是页面端的。。下面是JS部分,以JQ为示例的(请忽略细节)。

$(function(){
   $(".listComment").on("click", function(){
      id = $(this).attr("id");
      if(){
        //...这里加一个有没有ID值判断啊之类的提示
      }
      $.ajax({
          url: 'xxxx',
          data:{id:id}
          ...杂七杂八的ajax处理之类
          success:function(data){
            //...这里就是ajax去获取评论列表啊,还有显示评论框
          }
          //...杂七杂八的ajax处理之类
      })
   });

   //因为输入框是后期JS添加进去的。所以用live绑定他们
   $(".post").live("click", function()){
       //获取点击此事件中表单包含的所有数据。。然后再ajax返回
   });

})



这就是一个完整的示例了。撸住没看懂的话。。我也无办法帮你了

小野ye
小野ye
+1
返回顶部
顶部