2017-06-03 6 views
-2

私は自分のウェブサイトの簡単なログインフォームを開発しています。そしてそれを行うために、私はajaxを使ってphpに接続してユーザーを検証することを考えました。しかし、私はajaxから出力を得ることはできません。jQuery Ajax関数は機能しませんか?

<script> 
function submitForLogin() 
{ 
    $.ajax({ 
      type: "POST", 
      url: "php/login.php", 
      data: { email: "[email protected]",password:"123" }}).done(function(data){alert(data);}); 

} 

</script> 

ユーザーがログインボタンをクリックすると、submitForLogin()関数が呼び出されます。

上記のコードの一部をlogin.htmlファイルに入れました。これが有効かどうかを検証するために、電子メールとパスワードのデータ値をハードコードされた値に置き換えました。

注:[email protected]と123は、電子メールとパスワードの両方がWampサーバーデータベースに格納されています。

これはPHPファイルです:私は(以前のハードコードされた値を持つ$ USEREMAILと$ userPassで)唯一のPHPファイルを実行するたびにuserExist出力PHPプリント

<?php 
$userEmail=$_POST['email']; 
$userPass=$_POST['password']; 
$servername ="localhost"; 
    $username="root"; 
    $password=""; 
    $dbname="AS2014459"; 
    //To create a connection 
    $con = mysqli_connect($servername,$username,$password,$dbname); //check connection 
    if(!$con){ 
     die("Connection failed: ".mysqli_connect_error()); 
    } 
    $sql="SELECT Email,Password FROM USERTABLE WHERE Email='".$userEmail."'"; 
    $results=mysqli_query($con,$sql); 
    if(mysqli_num_rows($results)>0) 
    { 
     echo "userExist"; 
    } 
    else 
    { 
     echo "fakeUser"; 
    } 
    mysqli_close($con); 



?> 

。しかし、アヤックスを使用して私は警告ボックスにそれを得ることはできません。

ありがとうございます。私はWampサーバーでもWebサイトを実行しています。

UPDATE

私はそれを示してコンソールエラーをチェックしてください。

enter image description here

そして、私はlogin.htmlとライン112上でクリックしたとき、それは示しています。

enter image description here

やアイデアの男?また、これまでに提供された解決策のどれも私に質問に対する成功した答えを与えてくれませんでした。

jqueryエラーが発生し、修正されました。しかし、構文エラーが存在します。

+0

は(この関数submitForLoginを試してみてください) { $アヤックス({ タイプを: "POST"、 url: "php/login.php"、 データ:{email: "[email protected]"、パスワード: "123"}、 成功:機能(応答){ \tアラート(応答); } }); } – Lalit

+2

エラーがコンソールに表示され、ネットワークタブでAJAXの状況を確認しましたか? – j08691

+1

あなたはSQLインジェクションにオープンしています。パラメータ化する。 – chris85

答えて

0

私のマシンでこのコードを試してみてください。 Jqueryファイルを配置するのを忘れないでください。 PHP(ajax.php):

<html> 
<head> 
    <script src="jquery.min.js"></script> 
    <script> 
     function submitForLogin() 
{ 
     alert("23"); 
     var email = document.getElementById("txtUserName").value; 
     var password = document.getElementById("txtPassword").value; 
    $.ajax({ 
      type: "POST", 
      url: "login1.php", 
      data: { email: email,password:password }, 
      success : function(response){ 
       alert(response); 
      } 
    }); 

} 

    </script> 
</head> 
<body> 
    <input type="text" placeholder = "Enter user name" id="txtUserName"/> 
    <input type="password" placeholder = "Enter password" id="txtPassword"/><br> 
    <input type="button" onclick="submitForLogin();" value="Login"/> 
</body> 
</html> 

サーバーサイド(login1。PHP):

<?php 
var_dump($_POST); 
?> 
+0

これは私が持っているものですが、コードの最後にUserExistメッセージがあります。 。?。

 C:\wamp64\www\WebProject\php\login.php:2: array(size=2) 'email' =>string'[email protected]'(length=15) 'password' =>string'123'(length=3) 
userExist – sam1234

+0

私は、コードを更新したホープ・削除 – Lalit

+0

助けのvar_dump($ _ POST).. – sam1234

0

応答が含まれているリクエストが成功した場合に機能を含める必要があります。

$.ajax({ 
    type: "POST", 
    url: "php/login.php", 
    data: { email: "[email protected]",password:"123" }, 
    success:function(data){ 
     alert(data) 
    }; 
}); 
+2

OPは '.done()'を使用しています。加えて '.success'を使うことは推奨されません。 – j08691

+0

まだ何も分かりません。 :( – sam1234

+0

私は謝罪しましたが、私はdone関数を認識しませんでしたが、私はそれを研究しただけです$ .ajax({})success(function(){...}); (){...} –

0
$.ajax({ 
    type: "POST", 
    url: "php/login.php", 
    data: { email: "[email protected]",password:"123" }, 
    success: function (data) { 
     alert(data); 

    } 
}); 

あなたdataAJAXでの通話がJSON形式です。 PHPスクリプトに私は、これはあなたを助けるかもしれない願ってい

$data = file_get_contents("php://input"); 
$data = json_decode($data,true); 
$userEmail=$data['email']; 
$userPass=$data['password']; 

以下のようjson decodeを使用する必要があります。あなたのログインは期待どおりに動作します

+2

返信されているデータのアラートがオペレータに表示されない場合は、何が返されますか? – j08691

0
は、以下のようなあなたのphpファイルを変更し

<?php 
$userEmail=$_POST['email']; 
$userPass=$_POST['password']; 
$servername ="localhost"; 
$username="root"; 
$password=""; 
$dbname="AS2014459"; 
//To create a connection 

header('Content-type: application/json'); 


$con = mysqli_connect($servername,$username,$password,$dbname); //check connection 
if(!$con){ 
    die("Connection failed: ".mysqli_connect_error()); 
} 
$sql="SELECT Email,Password FROM USERTABLE WHERE Email='".$userEmail."'"; 
$results=mysqli_query($con,$sql); 
if(mysqli_num_rows($results)>0) 
{ 
    $res = "userExist"; 
    $data = json_encode($res); 
    echo $data; 
    die(); 

} 
else 
{ 

    $res = "fakeUser"; 
    $data = json_encode($res); 
    echo $data; 
    die(); 
} 
mysqli_close($con); 



?> 

そして、あなたのスクリプト:

$.ajax({ 
type: "POST", 
url: "php/login.php", 
data: { email: "[email protected]",password:"123" }, 
success:function(data){ 
    alert(data); 
}; 
}); 
関連する問題