AJAXを使用している患者の状態を変更するときは、<td>
で表示される値をドロップリストから選択した同じ値に直接変更する必要があります。ページをリロードせずにtdの値を更新する
$(document).on('change', '#patient_status ', function()
{
if(confirm("Are you sure you want to change the status of a patient ?"))
{
var pid = $(this).closest('tr').attr('id');
var new_status = $("#patient_status").val();
$(this).closest('tr').find('#change_status').val(new_status);
//console.log(pid + " " + new_status);
$.ajax({
url: '../php/changeStatus.php',
type: 'POST',
dataType: 'TEXT',
data: {pid: pid, new_status: new_status},
beforeSend:function(){
$('#wait').show();
},
success:function(resp){
},
error:function(resp){
},
complete:function()
{
$('#wait').hide();
}
})
}
});
例は、患者のステータスをアクティブからデフオルトに変更した場合の画像です。値はデータベースで変更されますが、画面上ではページをリロードする必要があります。
$(this).closest('tr').find('#change_status').val(new_status);
HTMLフォームはここにある:
<tr id="<?php echo $patient['patient_id']; ?>">
<td id="change_status"><?php echo $patient['patient_status']; ?></td>
<tr>
のでしょうか?あなたがDOMのトラバーサルを行っているという事実は、あなたがそうしていることを示しています。その場合、それが問題です。それらをクラスに変更します。 –
いいえ私は似たようなIDがありません。もっと説明できますか? – droidnation
私はそれらをに変更しました。 #の代わりにid =をclass =に変更しても同じように – droidnation