Ich weiß, es gibt viele Antworten zu meinem Problem, aber ich bin neu zu Ajax und Javascript Ich möchte, dass jemand auf das Problem zeigen, dass mein Skript fehlschlägt.
Ich machte Login-Check mit Ajax basierend auf dieser Antwort Check if user logged in on ajax page change. Wenn auf die Schaltfläche zum Senden geklickt wird, überprüft die Funktion, ob der Benutzer angemeldet ist oder nicht. Ich möchte eine Warnung anzeigen, wenn dies nicht der Fall ist, und mit der nächsten Seite fortfahren, wenn dies der Fall ist.
Mein javascript:Ajax für Login-Check funktioniert nicht und senden Formular
$('#bookForm').submit(function(){
$.ajax({
url : '<?=BASE_URL?>user/logged.php',
success : function(response){
if (response.logged == true) {
return true;
}else{
alert('you need to log in');
//e.preventDefault();
return false;
}
}
});
});
Mein PHP-Skript, das, wenn der Benutzer überprüft protokolliert:
$response = array();
if(!isset($_SESSION['userId'])) {
$response['logged'] = false;
}else{
$response['logged'] = true;
}
$response = json_encode($response);
echo($response);
Ich bin neu zu Javascript/Ajax und ich bin nicht sicher, wo das Problem ist. Die Funktion gibt die Warnung für nicht eingeloggten Benutzer zurück, obwohl der Benutzer angemeldet ist.
Entfernen Sie die 'return json_encode ($ response); ' – RiggsFolly
Und echo braucht keine Klammern so' echo $ response; ' – RiggsFolly
Haben Sie die AJAX-Anfrage/Antwort in den Browser-Entwickler-Tools beobachtet? Haben Sie die jQuery-Bibliothek in das Projekt aufgenommen? Werden Fehler gemeldet? Laufen Sie das auf einem Webserver? Wie stellen Sie 'BASE_URL' ein? –