配列から値(カードの詳細)を取り出してhtmlテーブルに入れました。特定のカードを削除するための削除ボタンも追加しました。削除ボタンは、残りの行にない最初の行にのみ作用します
これをajaxで削除します。最初の行の削除ボタンをクリックすると、完全に機能しますが、2行目または3行目の他の削除ボタンをクリックすると、アクションはありません。
この問題を解決する正しい方法を提案してください。ここでは、事前
で
おかげで、削除ボタンにクラスを与えるとidと、そのクラスにイベントをバインドする必要がない私のコード
<tr>
<td><?php echo $val['last4'];?></td>
<td><?php echo $val['exp_month'];?></td>
<td><?php echo $val['exp_year'];?></td>
<td><button id = "del">Delete</button></td>
</tr>
Ajax part
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script>
$('#del').click(function() {
//var a=document.getElementById("").value;
var val0 = $('#id').val();
var val01 = $('#cust').val();
var fade = document.getElementById("fade");
var show = function(){
fade.style.display = "block";
}
show();
$.ajax({
type: 'POST',
url: 'mywebsite.com/deleting.php',
data: { card_id: val0,cust_id: val01 },
success: function(response) {
fade.style.display = "none";
// alert(response);
mystring = response.replace(/^\s+|\s+$/g, "");
$('#result11').html(mystring);
}
});
});
</script>
ありがとうございます、それは今完璧に動作します。しかし、IDを使うときになぜそれがうまくいかなかったのですか? – Mario
@Mario - 最初の段落で説明しています。また、 –
@Marioを確認してください。[DOM spec](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-getElBId)によれば、技術的には、一意のIDは未定義の動作を引き起こします。しかし実際には、ほとんどの(すべての)ブラウザは 'getElementById()'(これは '$( '#del')'の背後で何をしているのか)を使って* first *要素を返します。あなたのコードでは、最初のボタンだけが終了し、クリックハンドラがついています。 – robinCTS