2016-04-26 19 views
0

だから、リダイレクトなしでログインページを送信したいと思います。これについての情報を読んだあと、AJAXを試しました。だから私はajaxを使ってログインページについていくつかのチュートリアルを見ました。ajaxを使用してjsonファイルを読み取る方法は?

私の参照が、このビデオです:https://www.youtube.com/watch?v=MkGUL7ZRCTA

私が何をしたいのかは、ユーザーが最初にログインする必要があるということです。しかし、私はページをリダイレクトしたくない。パスワードがjsonファイルのパスワードと一致するかどうかを確認するだけです。しかし、私が試してみると、コンソールのログに何も表示されていません(私はFirefoxを使用しています)。

は、私はこのような何かをしたい:http://susheel61.0fees.net/ajaxtest.php ではなく、その下にユーザーの入力を示すの、それはここで

は私のコードです(一致を確認した後)、「正しいパスワード」または「不正なパスワード」を示すだろうスニペット: HTML

<!DOCTYPE html> 
<html> 
<head> 
<title> AJAX Tutorial</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<style type="text/css"> 
#loginbox{ 
    width: 240px; 
    height: 140px; 
    margin: 0px auto; 
    margin-top: 300px; 
} 
</style> 
</head> 
<body> 
<div id="loginbox"> 
    <input id="password" type="password" placeholder="Enter Password" /> 

    <button> Submit </button> 

</div> 
<div id="container"></div> 

<script type="text/javascript"> 

    $("button").click(function(){ 

     var password = $("#password").val(); 

     $.post("server.php", {password:password}, function(data){ 
      console.log(data); 
     }); 

    }); 
</script> 
</body> 
</html> 

PHP

<?php 

if (isset($_POST["password"])){ 
$password = $_POST["password"]; 

$jsondata = file_get_contents("CONFIG.json"); 
$json = json_decode($jsondata, true); 

if ($password == $json["password"]) { 
    echo "Welcome"; 
} else { 
    echo "Wrong Password"; 
} 
} 
?> 

と私のJSON

{"reset":"12312","sync":"232131","config":"2","bypass":"22","password":"qwerty"} 

編集:windrunn3rの答えを使用して試しました。すべてうまく動作します。しかし、パスワードが正しいと、(隠された)フォームが表示されます。ここに私の新しいHTMLがあります。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title> AJAX Tutorial</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<style type="text/css"> 
#loginbox{ 
    width: 240px; 
    height: 140px; 
    margin: 0px auto; 
    margin-top: 300px; 
} 
</style> 
</head> 
<body> 

<div id="loginbox"> 
<div id="message"></div> 
    <input id="password" type="password" placeholder="Current Password" /> 

    <button> Submit </button> 
<div id="container"></div> 
</div> 

<div id="newpass" style="display: none"> 
    <input id="password" type="password" placeholder="New Password" /> 

    <button> Submit </button> 
</div> 

<script type="text/javascript"> 

$("button").click(function(){ 

var password = $("#password").val(); 


    $.ajax({ 
     url: 'server.php', 
     cache: false, 
     async: true, 
     beforeSend: function() { 
      $("#message").html("Checking..."); 

      console.log(password) 
     }, 
     type: "POST", 
     data: { password: password }, //data to post to server 
     error: function (data) { 
      $("#message").hide(); 
      $("#container").html("No password was sent"); 
     }, 
     success: function (data) { 
      $("#message").hide(); 
      console.log(data) 
      if (console.log(data)=="Welcome"){ 
       $("#newpass").show(); 
      } else { 
       $("#container").html("Password Incorrect"); 
      } 
     } 
    }); 
}); 

    /*$("button").click(function(){ 

     var password = $("#password").val(); 

     $.post("server.php", {password:password}, function(data){ 
      console.log(data); 

      if (console.log(data) == "Welcome") { 
       document.getElementById("container").innerHTML = "Password Correct!"; 
      } else { 
       document.getElementById("container").innerHTML = "Password Incorrect!"; 
      } 
     }); 

    });*/ 
</script> 

+1

可能な複製(http://stackoverflow.com/questions/8951810/how-to-parse-json- [jqueryの/ JavaScriptでJSONデータを解析する方法?] data-with-jquery-javascript) – aldrin27

+0

重複しているかどうかわかりませんが、とを追加したときにコンソールに何かを表示できましたHTMLファイル – gooey

答えて

1

あなたがこのために間違っているjQueryの機能を使用していることも可能です。 Jquery.post()https://api.jquery.com/jquery.post/)は、要求の実行に成功するための関数を追加するためのオプションしか持っていません。ここでdataは、サーバーから返されたデータを参照します。サーバーに送信する前に何かしたい場合は、$.ajax()を使用してより多くのオプションを取得できます。

$("#submitButton").click(function(){ 

    var password = $("#password").val(); 


     $.ajax({ 
      url: 'server.php', 
      cache: false, 
      async: true, 
      beforeSend: function() { 
       //do what you want to do before sending the data to the server 

       console.log(password) 
      }, 
      type: "POST", 
      data: { password: password }, //data to post to server 
      error: function (data) { 
       //do something if an error happends 
      }, 
      success: function (data) { 
       //do something with server's response 
       console.log(data) 
      } 
     }); 
}); 

仕事フィドル:のhttps://jsfiddle.net/windrunn3r1990/Lh46005f/1/

+0

ありがとうございました。私はあなたの助けに感謝します。私は最初の質問について別の質問をしたいだけです。上記の編集された部分を参照してください。 – gooey

+0

ここに私が持っていたもののスクリーンショットです:http://imgur.com/CT7T6gp 01​​歓迎を示していますが、それでも "パスワードが間違っています"と表示され、隠れたフォームは表示されません。これをどうすれば解決できますか? – gooey

+0

成功関数で 'console = log(data)==の代わりに' data == "Welcome" 'を試してください' if'条件のために "Welcome" ' –

関連する問題