0

編集リンクのブートストラップモーダルフォームロードをクリックすると、編集リンクとともにユーザーのレコードをリストしています

マイページには次のコードがあります(モーダルを動的に作成するより良い方法があるかどうかはわかりません)

変更後、ユーザーがモーダルフォームを送信すると、モーダルが消え、更新メッセージが users.php ページに表示されます

しかし、アラートボックスには、クリックしたすべてのモーダルの送信ボタンに対して同じフォームID(つまり、最初のモーダルのフォームID)が表示され、空白のデータ文字列(フォームシリアル化)が表示されます

それぞれのフォームのデータを process.php に渡したい

以下は私のusers.phpの一部です

<?php whlie($row=mysql_fetch_array($result)){?>
<div id="editkey" class="modal hide fade" style="display: none; ">
   <div class="modal-header">
      <a class="close" data-dismiss="modal">X</a>
      <h3>Edit users Details</h3>
   </div>
<div>
<form id="keyfrm<?=$row['id'];?>">
   <fieldset>
   <input type="hidden" name="keyid" value="<?=$row['id'];?>">
     <div class="modal-body">
        <ul class="nav nav-list">
        <li class="nav-header text-left"><p>Name :</p></li>
        <li class="nav-header text-left"><p><input type="text" name="name"></p></li>
        </ul> 
    </div>
  <fieldset>
</form>
</div>
<div class="modal-footer">
    <button class="btn btn-success" id="submit">submit</button>
    <a href="#" class="btn" data-dismiss="modal">Close</a>
</div>

を含むjsファイルがあります

$(document).ready(function(){
 $('#submit').click(function() {
   var formID = $('form').attr('id');
   alert(formID);
   var datastring = $(this).closest('form').serialize();  // may be working
   alert(datastring);
    $.ajax({
    type: 'POST',
    url: 'update_user.php',
    data: datastring ,
    success: function(msg) {
        alert(msg);
            var data=msg.split('|');
            $(data[0]).modal('hide');
            $('#result').html('');
            $('#result').fadeOut("slow");
            if(data[1]==='Success'){
                $('#result').css('background-color','#DDF9B3');
                $('#result').text("Data is updating...please wait for changes to take effect");
                window.setTimeout(function(){location.reload()},3000)
            }else{
                $('#result').css('background-color','#FE9898');
                $('#result').text("Error Occured");}
            //$('#result').html(msg);
            $('#result').fadeIn("slow");
            $("#result").delay(4200).fadeOut(800);
        }
    });

    event.preventDefault();
  });
});

どんな助けでも大歓迎です

4

1 に答える 1

0

データを取得するのと同じ方法で formID を取得します。

var formID = $(this).closest('form').attr('id');
   alert(formID);
   var datastring = $(this).closest('form').serialize();
于 2013-09-12T16:14:13.860 に答える