私は現在、ユーザーがパスワードを変更できるフォームを作成中です。そして、私はjQuery ajaxにはあまりよくありません。 ajaxはchangepassword.phpにデータを送信していないようです。私はajaxを使用しない場合、PHPファイルは正常に動作します。みんなここで少し助けてくれますか?jQueryのメソッド.ajax()を使用してPHPでフォームを送信する
いくつかのコメントに従ってファイルを更新しました。フォームを送信しようとすると、Doesn't Work
が返されます。だから私はPHPが応答していると思うが、値はデータベースに取得していない。
ありがとうございました。フォームとAjax(更新)
<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>
であり、これはchangepassword.php
が続き
(更新)
<?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;
}
?>
これはメソッドchange_password()
あるconnect.php
クラスファイルから
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;
}
}
}
火元爆弾でエラーが発生しましたか?あなたは「作品」として警告を受けますか? –
echo $ usernameまたはあなたのPHPファイルの中に何でも警告(データ); phpに正しく渡されているかどうかを確認する必要があります。 – mikevoermans
私は「Works」という警告が表示されません。私はphpファイルに$ usernameをエコーしようとしましたが、それはajaxに返されません。そして、私は火かき棒の使い方をあまり知らない。 – lusketeer