Ich habe mindestens 20 dieser ähnlichen Fragen gelesen und kann nicht herausfinden, was mit meinem Code nicht stimmt.AJAX empfängt keine POST-Variablen
ich ein Login-Formular haben, wie unten gezeigt:
<div class="login-form">
<form class="login-form-container" action="./" method="post" autocomplete="off">
<input id="login-user" type="text" placeholder=" Username"/>
<input id="login-pass" type="password" placeholder=" Password"/>
<div class="login-button-container">
<input id="login-button" type="submit" value="Log in"/>
</div>
</form>
</div>
Mein login.js Skript ist als unten:
$(document).ready(function(){
$("#login-button").click(function(e){
var username = $("#login-user").val();
var password = $("#login-pass").val();
$.ajax({url: "../includes/index.php", //.js file is in a diff directory
data: {'login':true,'name':username,'pwd':password},
type: "POST",
success: function(html) {
if (html=='true') {
//window.location="dashboard.php";
alert('success');
}
else {
alert('failure');
}
}
});
return false;
});
});
Dies soll geschickt ‚index.php, um wieder ', die eine separate PHP-Datei enthält, die die Login-Informationen behandelt. Der Grund dafür ist, dass ich die Seite mit der erfolgreichen Anmeldung des Benutzers ohne Aktualisierung aktualisieren kann.
Meine andere PHP-Datei überprüft wird einfach für die Post-Daten:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
var_dump($_POST);
if (isset($_POST['login']) && $_POST['login']) {
} else if (isset($_POST['reg']) && $_POST['reg']) { //this is for registration, which will be used once this login is working
} else {
echo 'Neither login/reg were set';
}
Die var Dump zeigt:
array(0) { }
So werden die Daten nicht empfangen werden. Allerdings erreicht es eindeutig die PHP-Seite. Ich weiß nicht, was los ist, irgendwelche Vorschläge?
Bearbeiten: Ich dachte, ich würde hinzufügen, dass das Hinzufügen einer Warnung an der Spitze von login.js mit dem Benutzernamen/Passwort die eingegebenen Werte drucken. So wird die login.js erreicht, und die Daten sind dort zugänglich. Aber es geht nicht darüber hinaus.
Edit2: Hier ist meine aktualisierte HTML und login.js Code:
index.php:
<form class="login-form-container" action="./" method="post" autocomplete="off">
<input id="login-user" type="text" placeholder=" Username"/>
<input id="login-pass" type="password" placeholder=" Password"/>
<div class="login-button-container">
<input id="login-button" type="button" value="Log in"/>
</div>
</form>
login.js
$(document).ready(function(){
alert(1);
$("#login-button").click(function(e){
alert(0);
//e.preventDefault();
var username = $("#login-user").val();
var password = $("#login-pass").val();
$.ajax({url: "../includes/index.php",
data: {'login':true,'name':username,'pwd':password},
type: "POST",
success: function(html) {
if (html=='true') {
//window.location="dashboard.php";
alert('success');
}
else {
alert('failure');
}
}
});
return false;
});
});
Wie erreicht es die Seite klar, wenn var dump leer ist? – clearshot66
, weil es bestätigt, dass "$ _SERVER ['REQUEST_METHOD'] == 'POST'", einfach das Laden der Indexseite nichts dump..uner ich irre mich darüber? – Gredenko
Irgendwelche Fehler in der Konsole? –