繁体   English   中英

使用Ajax提交表单时,如何从while循环中的相同ID摆脱

[英]How to get rid from the same id in while loop when submitting form using ajax

我在while循环中使用ajax提交表单,但是由于循环,相同的表单id被使用了很多次,因此表单只提交了一次。 我认为我每次都要在表单循环中创建唯一的ID,但不知道如何。

到目前为止,这是我的代码,

<?php
$get_cmt ="SELECT * FROM comments WHERE post_id = $post_id ORDER BY id DESC";
$query_cmt = mysqli_query($db_conx,$get_cmt);
while($row_cmt=mysqli_fetch_array($query_cmt,MYSQLI_ASSOC)){
$comtr_id = $row_cmt['comtr_id'];
$comment_id = $row_cmt['id'];
?>
            <form id="subcmt_smt" method="post">
            <textarea name="subcmt"></textarea>
            <input type="hidden" value="<?php echo $comment_id;?>" name="comment_id">
            <input type="hidden" value="<?php echo $pager_id;?>" name="comtr_id">  
            </form>
<?php } ?>
<script src="jQuery v2.1.1"></script>
<script>
$("#subcmt_smt").submit(function(e) {
            var form = $(this);
            var url = form.attr('action');
            e.preventDefault(); 
             $.ajax({
             type: "POST",
             url: "submit_subcmt.php",
             data: form.serialize(), // serializes the form's elements.
             success: function(data)
            {
             alert(data); // show response from the php script.
            }
        });
      });
 </script>

submit_subcmt.php

<?php
$comtr_id =$_POST['comtr_id'];
$comment_id =$_POST['comment_id'];
echo $comtr_id;
echo $comment_id;
?>

为了说明我在上面所做的评论,您可以尝试与此类似的操作。

<?php

    $get_cmt ="SELECT * FROM comments WHERE post_id = $post_id ORDER BY id DESC";
    $query_cmt = mysqli_query($db_conx,$get_cmt);

    while( $row_cmt=mysqli_fetch_array($query_cmt,MYSQLI_ASSOC) ){
        $comtr_id = $row_cmt['comtr_id'];
        $comment_id = $row_cmt['id'];

?>              <!-- use a class attribute here -->
                <form class="subcmt_smt" method="post">
                    <textarea name="subcmt"></textarea>
                    <input type="hidden" value="<?php echo $comment_id;?>" name="comment_id">
                    <input type="hidden" value="<?php echo $pager_id;?>" name="comtr_id">  
                </form>
<?php 
    }//end loop
?>


<script src="jQuery v2.1.1"></script>
<script>
    /* and assign event handlers to form objects with this class as per above */
    $("form.subcmt_smt").submit(function(e) {
        var form = $(this);
        var url = form.attr('action');
        e.preventDefault(); 
        $.ajax({
            type: "POST",
            url: "submit_subcmt.php",
            data: form.serialize(),
            success: function(data) {
                alert(data);
            }
        });
    });
</script>

尝试这个。

 <?php
   $get_cmt ="SELECT * FROM comments WHERE post_id = $post_id ORDER BY id DESC";
   $query_cmt = mysqli_query($db_conx,$get_cmt);
   while($row_cmt=mysqli_fetch_array($query_cmt,MYSQLI_ASSOC)){
   $comtr_id = $row_cmt['comtr_id'];
   $comment_id = $row_cmt['id'];
 ?>
        <form class="subcmt_smt" method="post">
        <textarea name="subcmt"></textarea>
        <input type="hidden" value="<?php echo $comment_id;?>" name="comment_id">
        <input type="hidden" value="<?php echo $pager_id;?>" name="comtr_id">  
        </form>
   <?php } ?>
   <script src="jQuery v2.1.1"></script>
    <script>
   $(".subcmt_smt").submit(function(e) {
        var form = $(this);
        var url = form.attr('action');
        e.preventDefault(); 
         $.ajax({
         type: "POST",
         url: "submit_subcmt.php",
         data: form.serialize(), // serializes the form's elements.
         success: function(data)
        {
         alert(data); // show response from the php script.
        }
    });
   });
 </script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM