$(this).data(“value”)没有使用$ .post传递值

时间:2015-07-09 08:04:54

标签: php jquery mysql

我的表格

<div class="replymsg">
<form class="mainform" action="reply.php" method="POST">    
<textarea class="replytext" ></textarea>
<button data-value="<?php echo $id; ?>"       
class="replybutton">Submit</button>
</form>
</div>

$ id来自MYSQL数据库。以下“测试”代码使用Jquery为我提供了回复表单的ID:

<script>
$(".replybutton").click(function(){
alert($(this).data("value"));
});
</script>

commentid的值:当我使用网站的“实际”代码时,id不会被传递(回复:replytext ...发送消息正在工作):

<script>
$(document).ready(function(){
$(".replybutton").click(function(){
var id = $(this).data("value");
var replytext = $(".replytext").val();
$.post("reply.php",{ commentid: id, reply: replytext },function(data){
$("#result").html(data);    
    });
  });
}); 
</script>

任何想法,任何帮助都表示赞赏?

3 个答案:

答案 0 :(得分:1)

如果你使用ajax,很可能你应该停止提交表单,因为按钮的默认行为是提交表单:

*.pro

或在按钮上添加一个类型:

<script>
$(document).ready(function(){
   $(".replybutton").click(function(e){
      e.preventDefault(); //<---------------stops the form submission here
      var id = $(this).data("value");
      var replytext = $(".replytext").val();
      $.post("reply.php",{ commentid: id, reply: replytext },function(data){
         $("#result").html(data);    
      });
   });
}); 
</script>

另一种方法是使用<button type='button' data-value="<?php echo $id; ?>" class="replybutton">Submit</button> //------^^^^^^^^^^^^ 事件:

.submit()

在这种情况下,您不需要为按钮添加类型,但最好拥有它

答案 1 :(得分:0)

使用 AJAX

提交表单

表格

    <div class="replymsg">
        <form class="mainform" action="" method=" ">
            <textarea class="replytext" ></textarea>
            <input type="text" value="<?php echo $id; ?>" name="comment_id" id="comment_id" style="display: none"> <!-- this contain the ID-->
            <input type="submit" class="replybutton" id="replybutton" value="Submit">
        </form>
    </div>

使用AJAX

<script>
    $(function(){
        $( "#replybutton" ).click(function(event)
        {
            event.preventDefault();

            var comment_id = $("#comment_id").val();
            var replytext = $(".replytext").val();

            $.ajax(
            {
                    type:"post",
                    url: "./reply.php",
                    data:{ id:comment_id, reply:replytext,},
                    success:function($data)
                    {
                       $("#result").html(data);
                    }
                });
        });
    });
</script>

答案 2 :(得分:0)

$(document).ready(function(){
$(".replybutton").click(function(e){
  e.preventDefault();
var id = $(this).data("value");
var replytext = $(this).prev().val();    
$.post("reply.php",{ commentid: id, reply: replytext
},function(data){
$("#result").html(data);    
     });
   });
});

感谢您的帮助,我想通了,我的问题是在点击回复按钮时在评论/回复系统中发送Id和replytext。上面的工作代码。