私はサーバー検証に不慣れで、Web全体を調べましたが、何も見つかりませんでした。フォームをphpで検証しようとしています。フォームを自分自身に投稿し、フォームが有効かどうかに応じて、配列に1または0を返します。それは問題なく動作しますが、私が抱えている問題は、結果が1の場合、ログイン画面をフェードアウトさせたいということです。それを動作させることができません。
これが私のコードです:
PHP
if ($valid == 1) {
$isvalid = array('valid' => $valid);
echo json_encode(array_values($isvalid));
};
javascript
<script>
$(document).ready(function(){
$('#login_button').click(function(){
$.getJSON("/index.php",function(result){
console.log(result);
});
});
});
</script>
コンソールに何も出力されません。アラートも試しましたが、何も起こりません。JSONは左上隅で機能しているようです。[1]が表示されます。これは必要なものです。
これが私のコード全体です。おそらくスクリプトを配置することの問題ですか?
<script type="text/javascript" src="/jquery-1.9.1.min.js">
</script>
\\wait to load the script until the document is ready
<script>
$(document).ready(function(){
//on submission
$('#login_button').click(function(){
//check if login was valid
$.getJSON("localhost/index.php",function(result){
console.log(result) .error(function() {console.log('error');});
});
});
});
</script>
<?PHP
$valid = 0;
//Declare the database connection
$con = mysql_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
//Has the form been submitted?
if(isset($_POST['Username'])){
//Check if Username and PW correct
mysql_select_db ("Users",$con);
$sqlCheckUser = mysql_query ( "select Username from userinfo where UserName = '$_POST[Username]' && Password = MD5('$_POST[Password]')");
//Parse Results
$row = mysql_fetch_assoc($sqlCheckUser);
//is the login valid
if (isset($row) && !empty ($row)) {
$valid = 1;
}
else {
$badpw = "Invalid Username or Password";
}
}
//handle if form has not been submitted
else {
echo "<center>Please Enter Username and Password</center><br />";
};
if ($valid == 1) {
$isvalid = array('valid' => $valid);
echo json_encode(array_values($isvalid));
};
?>
</head>
JSONを検証しましたが、何が起こっているのか誰かが知っているようです。私は本当にこれが機能する必要があります。
編集
さて、これを私のコードに追加すると、エラーが発生します。
スクリプトは次のようになります
<script>
$(document).ready(function(){
$('#login_button').click(function(){
$.getJSON("index.php",$('#Login').serialize(),function(result){
alert(result);
})
.error(function(error) { alert(error); console.log(error); })
})
});
</script>
警告テキストは[オブジェクトオブジェクト]です
コンソール出力は次のとおりです。
object ready state: 0
getResponseHeader: Function
getAllRequestHeaders: Function
SetRequestHeader: Function
overrideimetype: function
http://i.imgur.com/Ei2bBAR.jpg (スクリーンショットを撮ったのは、それを読むのに十分な時間コンソールにとどまらないためです)