ユーザーのパスワードを変更するためのフォームを作成しようとしています。コンソールでエラーは生成されていませんが、何も更新されていません。バリデーション側も動いているのでAjaxの部分まで?
免責事項: PHP で mysql を使用するべきではないことはわかっていますが、基本を理解しようとしており、後日 mysqli を学習します :) また、config.php は他の複数の関数で使用されるため、config を知っています。 php 大丈夫です。
何がうまくいかないのですか?
HTML:
<fieldset>
<form method="post" name="password-form" id="form-password">
<label>Password:</label> <br>
<input type="password" name="password" id="password" value="" size="32" />
<br>
<br>
<label>Re-Enter Password:</label> <br>
<input type="password" name="password-check" id="password-check" value="" size="32" />
<br>
<br>
<input type="submit" value="Submit" id="passsubmit">
</form>
</fieldset>
JQuery:
$(function(){
$("#passsubmit").click(function(){
$(".error").hide();
var hasError = false;
var newpass = $("#password").val();
var checkVal = $("#password-check").val();
if (newpass == '') {
$("#password").after('<span class="error">Please enter a password.</span>');
hasError = true;
} else if (checkVal == '') {
$("#password-check").after('<span class="error">Please re-enter your password.</span>');
hasError = true;
} else if (newpass != checkVal ) {
$("#password-check").after('<span class="error">Passwords do not match.</span>');
hasError = true;
}
if(hasError == true) {return false;}
if(hasError == false) {
$.ajax({
type: "POST",
url: "resource/changepassword.php",
data: {newpass:newpass},
success: function(){}
});
};
});
});
PHP:
<?php
session_start();
include('config.php');
$user_check=$_SESSION['login_user'];
$newpass=$_POST['newpass'];
$sql_rec = "select UserID from useradmin where username='$user_check' ";
$rs_rec = mysql_query($sql_rec);
$data_rec = mysql_fetch_object($rs_rec);
$userID = $data_rec->UserID;
$updatesql="UPDATE useradmin SET passcode='$newpass' WHERE UserID=$userID";
mysql_query($updatesql, $bd) or die(mysql_error());
?>
$bd は、config.php からの私の MySQL 接続の詳細です。
アップデート:
ページに追加<div id="passsubmit2">123</div>
し、jquery を次のように変更しました。
$(function(){
$("#passsubmit2").click(function(){
そして、それは完全に機能するので、機能しないのはフォームボタンを使用するときだけですか?