簡體   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