そこで、フォームで使用して mysql データベースにアクセスする jquery を学習しようとしています。フォームは次のとおりです。
<form class="loginform" id="loginform" name="loginform">
<input type="email" id="login" name="login" placeholder="Login..." autofocus required /><br/>
<input type="password" id="password" name="password" placeholder="Password..." required /><br/>
<input type="submit" id="loginsubmit" name="loginsubmit" value="LOGIN"/><br/>
<input type="submit" id="register" name="register" value="REGISTER"/><br/>
</form><!-- end loginform -->
私はJS関数を持っていて、その関数を使用して$.submit()
おり、パラメーターとして定義された関数を介して、次のよう$.submit()
に呼び出しています。$.ajax()
function validateLogin(){
$('#loginform').submit(function() {
$.ajax({
url: "./validateLogin.php",
processData: false,
data: {
login: $("#login").val(),
password: $("#password").val()
},
success: function (result){
alert($('#login').val());
alert(result);
}
});
});
}
読み取り行に注意してください。最後に、url 設定processData: false,
のメソッドによって呼び出される php スクリプトです。$.ajax()
<?php
$verified = FALSE;
$login = $_POST["login"];
$password = $_POST["password"];
$con = mysql_connect(host, user, pass) or die(mysql_error());
mysql_select_db(db, $con) or die(mysql_error());
$result = mysql_query("SELECT * FROM logins") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
if ($row[login] == $login) {
$verified = TRUE;
}
}
?>
<html>
<body>
<?php echo($verified); ?>
</body>
</html>
うまくいかないことがいくつかあります。フォーム データが URL に追加されることを除いて、何も起こりません (url は submit 後に次のようになります: http://localhost/index.htmlqlogin=aloginname&password=apassword&login=LOGIN
、 name: 値ペアも追加されますなんらかの理由で送信ボタンをクエリ文字列に追加しました)、そして、HERE (データ設定を参照)を読んで、processData: false
これが起こってはならないことを理解しています。
また、アラートを発生させることもできませんsuccess: function()
(アラートをスローしようとしましbeforeSend: function()
たが、どちらも発生しません。
私はちょっとjQueryを理解していますが、私は比較的新しいものではありませんが、私が書いたコードについて私が理解していることは、JS関数でフォームにイベントハンドラーをアタッチしているということです(? -要素ではありませんフォーム)、およびそのイベント ハンドラーが実行する関数で$.ajax()
、データを URL に送信するメソッドを呼び出し、そのプロセスが正常に完了するsuccess:
と、メソッドの設定で定義された関数を処理します$.ajax()
。次に、phpスクリプトでmysqlに接続し、クエリを実行し、フォームからのログインがdbのエントリと一致するかどうかを確認し、一致する場合はブール値がtrueに変更され、最後にブール値が内部にエコーされます<html>
タグですが、そのhtmlデータを表示する方法がわかりません。
一言で言えばそれが私の問題です。ご指導いただければ幸いです。上記のプロセスについて誤解がある場合は、お気軽に修正してください。再度、感謝します。