2016-05-23 11 views
0

投稿IDを取得し、ユーザーがお気に入りボタンに追加した後にデータベースに挿入しようとしています。シリアル化された(jQuery/Ajax)を使用してフォームデータをループする方法

すべての投稿がデータベースの最後のIDである返品ID30であるという問題。

私のPHP/HTMLコードが

while($row = mysqli_fetch_array($get_posts)) { 
    <i style="float:right;" class="fa fa-pinterest-square"> 
     <form id="pin_post" method="post"> '; 
      if (isset($_SESSION['user_id'])){ 
       <input type="hidden" value="'. $_SESSION['user_id'].'" name="user_id" /> 
      } 

      <input type="hidden" value="'.$row['post_id'].'" name="post_id[]" /> 

     </form> 
    </i> 

のjQuery/Ajaxコード

<script> 

    $(document).on("click",".fa-pinterest-square",function(e) { 


     $.ajax({ 
      url: "includes/test.php", 
      type: "POST", 
      data: $('#pin_post').serialize(), 
      success: function(data) { 
       alert(data); 
      } 
     }); 

    }); 
</script> 

私は任意のポストをクリックしたときに、私は、データベース内の最後のIDを取得しています。

jQueryの#pin_postを探しているときに、最後のヒットを取得しますそれをシリアライズするときに#pin_postを使用しているので、私は

+0

したがって、ループからフォームを作成する必要がありますか? –

+0

ここで解析エラーが発生するはずです。 'while($ row = mysqli_fetch_array($ get_posts)){ ... ' –

答えて

1

をクリックしたとき、私は、各ポストのIDを取得するには助けてください。どちらか一意のIDなどを使用する必要があります

$(document).on("click",".fa-pinterest-square",function(e) { 
    var form = $(this).find('form'); //Since the form is child to <i> 
    $.ajax({ 
     url: "includes/test.php", 
     type: "POST", 
     data: form.serialize(), 
     success: function(data) { 
      alert(data); 
     } 
    }); 
}); 
+0

本当にありがとうございました。 var form = $(this).find( 'form')の仕方を説明できますか?データベースからの各投稿のIDを取得します。 –

+0

これは、 '#pin_post'にアクセスしようとしているときに、' 'が一意である(HTMLの他の場所には存在しない)ことを確かめなければならないので、id属性は常にユニーク!私がしたのは、クリックイベントに基づいて、その子にアクセスしました。この場合は、シリアル化する

です。 (コメントを正しいものにしてください) –

+0

ありがとうございました。確かに私はそれを行います。 –

関連する問題