Ich habe ein Problem in Bezug auf meine Ajax, ich bin ein Hinzufügen von Daten aus meiner Datenbank, und ich versuche, meine div zu aktualisieren. Manchmal funktioniert es gut, aber manchmal nicht. Warum ist es?.Ajax manchmal läuft manchmal nicht
Hier ist mein Code, wo ich eine Funktion Addtoqueue und innerhalb seines Erfolges habe, habe ich ein div Refresher, so dass nach dem Hinzufügen in meiner Datenbank, ich werde meine div aktualisieren. Manchmal funktioniert es gut, aber manchmal ist es nicht, ich habe es viele Male versucht und es hat immer versagt. Warum?
function addtoqueue(patient_id) {
if(getClinicID != undefined) {
if (confirm("Are you sure you want to add this in queue?")) {
$.ajax({
url: siteurl+"myclinic/patientaddqueue",
type: "POST",
data: {patient_id:patient_id,clinic_id:getClinicID},
dataType: "JSON",
success: function(data) {
refresh_afterdel(getClinicID);
alert("Patient Successfully Added");
}
});
}
}
else{
alert("There is no clinic selected");
}
}
Hier ist meine refresh_afterdel Funktion mit voller Code:
function refresh_afterdel(getClinicID) {
$("#queue").empty();
$.ajax({
url: siteurl+"myclinic/get_patients_refresh/"+getClinicID,
type: "GET",
dataType: "JSON",
success: function(data) {
if(data.length>0) {
$("#queue").empty();
for(i=0;i<data.length;i++) {
$('#queue').append('<div class="col-sm-10">'+'<div class="panel-group">'+'<div class="panel panel-info">'+
'<div class="panel-heading">'+'<h4><a data-toggle="collapse" href="#patientinfo'+data[i]['patient_id']+'">'+data[i]['order_num']+' '+data[i]['patient_lname']+', '+data[i]['patient_fname']+' <span class="fa fa-arrow-circle-o-down pull-right"></span></a></h4>'+
'</div><!-- panel-heading -->'+'<div id="patientinfo'+data[i]['patient_id']+'" class="panel-collapse collapse">'+'<div class="panel-body">'+'<div class="row">'+
'<div class="col-sm-5">'+'<small>Patient ID: <label id="patientID">'+data[i]['patient_id']+'</label></small>'+''+'<button onclick="checkstatus('+data[i]['patient_id']+','+data[i]['queue_id']+');this.disabled=true;" id="btn'+data[i]['patient_id']+'" class="btn btn-success btn-sm ">Check me up</button>'+'<button onclick="checkstatus1('+data[i]['patient_id']+');" id="btn'+data[i]['patient_id']+'" class="btn btn-success btn-xs ">View History</button>'+
'<button onclick="removequeuedoc('+data[i]['queue_id']+');" id="btn'+data[i]['patient_id']+'" class="btn btn-danger btn-xs btnmarg"> Remove </button>'+'</div><!-- col-sm-4 -->'+'<div class="col-sm-6">'+
'<div class="img-patient">'+'<div class="patient-pic" style="background-image: url('+data[i]['patient_photo']+')"></div>'+'</div><!-- img-patient -->'+'</div><!-- col-sm-6 -->'+'</div><!-- row -->'+
'</div><!-- panel-body -->'+'</div><!-- panel-collapse -->'+'</div><!-- panel -->'+'</div><!-- panel-group -->'+'</div><!-- col-sm-10 -->');
};
}
}
});
}
Hier ist der Screenshot meiner Konsole, die zeigt, dass, nachdem ich die Schaltfläche geklickt addtoqueue die refresh_afterdel nicht ausgeführt. Auf das rote Label in meinem Screenshot muss get_patients_refresh folgen, da es der Ajax der refresh_afterdel-Funktion ist, schaue in das Label blue, es zeigt den korrekten Ablauf meiner Funktion an.
Sind das nicht nur asynchrone Operationen, die eine unbestimmte Zeit in Anspruch nehmen? – evolutionxbox
@evolutionxbox Danke für Ihre Antwort, Sir ich habe eine asynchrone Funktion in anderer Funktion, die im Screenshot die Überprüfung aktualisiert, aber beeinflusst es den Prozess? . Es ist nicht Teil meines addtoqueue-Codes? –
ln 2: getClinicID kann entweder einen Wert haben oder null sein, es kann niemals gleich undefined sein. Sie suchen nach typeof getClinicID! = 'Undefined', um zu sehen, ob die Variable initialisiert wurde oder nicht. – Chase