Juhuuu... mal wieder ne Frage:
Ich möchte BEVOR ein Ajax-Call stattfindet (neues Objekt in DB angelegt wird) eine vorgelagerte Ajax-Abfrage machen, ob es bereits (andere) existierende Objekte gibt.
Diese möchte ich anzeigen (Dialogbox über bootboxjs). Wenn der User auf "Abbruch" klickt, soll der eigentliche Ajax-Call (Objekt in DB neu anlegen) NICHT ausgeführt werden.
Der Dialog mit den Infos erscheint zwar, aber scheinbar wird der Ajax-Call ohne "warten" auf die User-Bestätigung ausgeführt und ebenso der success-Teil.
Also wird quasi nicht "gewartet" auf die User-Aktion sondern im Hintergrund der Ajax-Call ausgeführt.
Erbitte Hilfe 😀
Hier mal mein Code:
$('#btnSubmit').on('click', function (e) {
$.ajax({
beforeSend: function(xhr) {
// Ueberschneidungspruefung --------------------------------------------------------- //
if( $("#SelectTyp").val()=="3" || $("#SelectTyp").val()=="4") {
$.ajax({
type:'GET',
url:'getUeberschneidungsInfo.php?UserId=' + $("#SelectKonto option:selected").val() + '&datum=' + $("#Datepicker").val(),
dataType: "json",
success: function(data){
if(data.length == 0) {
//console.log('no data!');
} else {
//console.log('data ok!');
tempText = '<ul>';
data.forEach(function(element) {
tempText += '<li>' + element.name + ', ' + element.vorname + '<i> (' + element.text_long + ')</i></li>';
});
tempText += '</ul>';
// ---- Konten-Ueberschneidungs-Bestaetigungs-Dialog ------------ //
bootbox.confirm({
title: "Überschneidungsprüfung",
message: "Folgende Personen haben eine Überschneidung:<br/><br/>" + tempText,
buttons: {
cancel: {
label: '<i class="fa fa-times"></i> Abbruch'
},
confirm: {
label: '<i class="fa fa-check"></i> Weiter'
}
},
callback: function (result) {
//console.log('This was logged in the callback: ' + result);
if(result) {
console.log('eintragen!');
} else {
console.log('nicht eintragen!');
xhr.abort();
}
}
});
// -------------------------------------------------------------- //
}
},
error: function() {
alert("Error!: GetUserInfo()");
}
});
}
// Ueberschneidungspruefung --------------------------------------------------------- //
},
type: "POST",
url: "record_add.php",
data: $('form.form-horizontal').serialize() + '&typ=item&UserId=' + $("#SelectKonto option:selected").val(),
success: function(response){
$( "div.alert-success" ).html("<i style=\"font-size:2em;\" class=\"far fa-check-circle\"></i> " + response).fadeIn( 600 ).delay( 2500 ).fadeOut( 600 );