zu senden Ich arbeite derzeit an einem Formular, mit dem der Benutzer ihr Kennwort ändern kann. Und ich bin nicht sehr gut mit jQuery ajax. Der Ajax scheint die Daten nicht an changepassword.php zu senden. Die PHP-Datei funktioniert gut, wenn ich keinen Ajax verwende. Kannst du mir ein bisschen helfen?Mit jQuerys Methode .ajax(), um ein Formular in PHP
Ich aktualisierte meine Dateien nach einigen der Kommentare. Wenn ich versuche, das Formular zu senden, gibt es Doesn't Work
zurück. Also ich denke, der PHP reagiert, aber der Wert wurde nicht in die Datenbank.
Vielen Dank für die Hilfe Jungs.
Im Anschluss an die Form und Ajax (Aktualisiert)
<form id="form_id" method="POST">
<label for="username">Username</label>
<input type="text" name="username" id="username" required />
<label for="old_password">Old Password</label>
<input type="password" name="old_password" id="old_password" required />
<label for="new_password">New Password</label>
<input type="password" name="new_password" id="new_password" required />
<button class="submit">
Submit
</button>
<p class="result"></p>
</form>
<script>
$.ajaxSetup({
cache : false
});
$(".submit").click(function(e) {
$.ajax({
url : "changepassword.php",
type : "POST",
data : $("#form_id").serialize(),
success : function(data) {
if(data == 1) {
$(".result").html("Works");
} else {
$(".result").html("Doesn't Work");
}
}
});
return false;
});
</script>
Und das ist changepassword.php
(Aktualisiert)
<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);
include_once "../classes/Connect.php";
$connection = new Connect();
$username = $_POST['username'];
$old_password = $_POST['old_password'];
$new_password = $_POST['new_password'];
$result = $connection -> change_password($username, $old_password, $new_password);
if ($result) {
echo 1;
}
?>
Dies ist die Methode change_password()
aus connect.php
Klassendatei
function change_password($username, $old_password, $new_password){
$query = "UPDATE Account SET password = ? WHERE username = ? AND password = ?";
if ($stmt = $this -> conn -> prepare($query)){
$stmt -> bind_param('sss', md5($new_password), $username, md5($old_password));
if ($stmt -> execute()){
return true;
}
}
}
Erhalten Sie einen Fehler bei Firebug? Werden Sie wachsam als "Works"? –
Echo $ Benutzername oder was auch immer in Ihrer PHP-Datei dann Alarm (Daten); stattdessen um zu sehen, ob es richtig auf den php übergeht. – mikevoermans
Ich die Warnung "Works" wird nicht angezeigt. Ich habe versucht, $ username in PHP-Datei zu echo, aber es geht nicht zurück zu Ajax. Und ich weiß nicht, wie man Firebug verwendet – lusketeer