お世話になります。
現在phpでデータベースより複数のレコードを取得し、それぞれに入力フィールドと更新ボタンを付け、リスト型にしています。
この更新をajaxを使用して行いたいと思っています。
発生している問題
最初の1レコード目しか適用されません。
恐らくajaxにてidが被っているためだと思っているのですが、対処方法がわかりません。
該当のソースコード
html
1<script src="http://code.jquery.com/jquery-latest.js"></script> 2 <script> 3 $(document).ready(function() { 4 $('#send').click(function() { 5 var data = { 'id': $('#id').val(), 'name': $('#name').val() }; 6 7 $.ajax({ 8 type: "POST", 9 url: "send.php", 10 data: data, 11 }).done(function(data, dataType) { 12 // success 13 // PHPから返ってきたデータの表示 14 alert(data); 15 }).fail(function(XMLHttpRequest, textStatus, errorThrown) { 16 17 alert('Error : ' + errorThrown); 18 }); 19 20 return false; 21 }); 22 }); 23 </script> 24///省略/// 25<?php 26//データベースより複数のレコードを取得 27foreach ($records as $record) {?> 28<form method="post"> 29 <p><input id="id" ></p> 30 <p><input id="name" ></p> 31 <p><button type="submit" id="send" value="送信" >更新</button></p> 32</form> 33<?php } ?> 34
php
1///send.php内/// 2 3<?php 4 header("Content-type: text/plain; charset=UTF-8"); 5 6 if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) 7 && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') 8 { 9 if (isset($_POST['id'])) 10 { 11 12 echo $_POST['id']; 13 echo $_POST['name']; 14 } 15 else 16 { 17 echo 'ERROR'; 18 } 19 } 20 ?> 21
試したこと
変数[i=1]を作成し、繰り返しの中で[i++]を行い、idに付加しましたが、そのidをajaxに渡す方法がわかりませんでした。
補足情報(FW/ツールのバージョンなど)
補足になるかわかりませんが、実際は<table>内で繰り返しています
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/29 02:04
2018/01/29 02:49 編集
2018/01/29 05:34