2011-07-18 15 views
0

これは私の考えです。私はホームページにログインjqueryダイアログを持っています。私はajaxを使用して、入力された情報をPHPページに送信し、その後、ユーザー名とパスワードの組み合わせがデータベースに存在するかどうかを確認します。そうであれば、私は真実に戻り、ダイアログボックスを閉じます(サイトへのアクセスを許可します)。Jquery Ajax PHP - PHPコードが正常に実行されたかどうかを確認するには?

私のPHPスクリプト(実行されたページから)がtrueかfalseを返すかどうかをajaxで確認するにはどうすればよいですか? 私はajax関数の成功/エラーオプションがこれをチェックしていると仮定していましたが、以下のコードは機能していないようです。

$('.login').dialog({ 
    closeOnEscape: false, 
    title: false, 
    modal: true, 
    width: 'auto', 
    show: {effect: "fade", duration: 1500}, 
    title: 'Login', 
    buttons: { 
     "Login": function() { 
      $.ajax({ 
       async: false, 
       type: 'POST', 
       url: 'sql/login.php', 
       success: function(){ 
        alert("Success!"); 
       }, 
       error: function(){ 
        alert("Failed!"); 
       }, 
       dataType: "html" 
      }); 
     } 
    } 
}); 
$(".login").dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").remove(); 
+0

ただこれをそこに投げたい。ユーザーが権限を与えられていない場合、クライアントサイドのメソッド(javascript)を介してのみコンテンツへのアクセスを制限していますか?もしそうなら、あなたはFirebugを持つ誰もがあなたのセキュリティを取り巻くことができるように考え直したいでしょう。 – Adrian

答えて

1

が真か偽に置かれvariabelと私のPHPの終わりにエコーを入れていた、私はそれがこのようなものです成功オプション内でこの機能をしましたこれは私のために働いた、とあなたは

if($myvar){ 
$anothervar=1; 
}else{ 
$anothervar=0; 
} 
echo $anothervar; 

ので、あなたがこれを行うことができますPHPでこれを置くことができます。この私

success: function(response){ 
        if(response==1){ 
          alert("Success!"); 
          }else{ 
          alert("Failed!"); 
           } 

        } 

を私はそれを行う方法です、それは細かい が、それは私があなたのPHPページは、検証を行いますし、あなたがそれらをPHPスクリプト

以内にtrueまたはfalseを返す作ることを前提とあなたの情報によると

+0

私はそれを試み、didnt仕事。常に「False!」を返す – JimmyJammed

+0

それからデータベースにあなたの質問に問題があります – apz2000

+0

それは働いています!ありがとう! – JimmyJammed

1

いいえ。成功とエラーのオプションは、XHR要求の成否に関係します。あなたは何かを出力し、それをチェックするためにあなたのPHPスクリプトが必要です。たとえば、あなたのPHPスクリプトは、出力した場合、「OK」の検証が成功した場合(すなわちecho("ok");)、あなたは、このようなあなたのlogin.phpで、この1

$.ajax({ 
    url: 'sql/login.php', 
    success: function(data) { 
    if(data=="ok") { 
     alert('Login successfull.'); 
    } else { 
     alert('Login failed.'); 
    } 
    } 
}); 
0

としてAJAX要求を使用します。

if($_POST['data']){ 

     $curData = $_GET['country']; 
     $query = "SELECT * FROM yourTable 
        WHERE tblData = '$curData'"; 
     $result = mysql_query($query) or die; 

     if($result>0) 
       echo "<p class='checkExistance'>Data Exists</p>"; 
      else 
       echo "<p class='checkExistance'>Data doesnt Exist</p>"; 
    } 

あなたのJavaScriptで:それが動作するかどうか

function isSuccess(){ 
    if($('.checkExistance').text() === "Data Exists"){ 
      success($('.checkExistance').text()); //alert success! 
    }else{ 
      success($('.checkExistance').text()); 
    } 
} 

は本当にチェックしませんでしたが、あなたはかなりアイデアを得ます。 AJAX呼び出しでは、次の操作を行います。

$.ajax({ 
    // 
    .. 
    success:isSuccess 

}); 

or 

success:function(){ 
    if($('.checkExistance').text() === "Data Exists"){ 
       success($('.checkExistance').text()); //alert success! 
     }else{ 
       success($('.checkExistance').text()); 
     } 
} 

はあなたが助け成功()function..Hope内の警告を()を実装していることを確認してください。

success: function(response){ 
        if(response){ 
          alert("Success!"); 
          }else{ 
          alert("Failed!"); 
           } 

        } 

:私は何

0

便利ですホープ作品あなたがそれらを送信しない限り、TOMMのは

上で言ったように

1.your PHPのページは一方で、彼らはアヤックスの結果に結果を送信しません、それ自体の中trueまたはfalseを返しますあなたのコード内の2つの問題があります。

$ .ajaxの2.success()とerror()は、NOT BY RESU要求の成功によって決定されますこれは、あなたのPHPが "false"であっても、リクエストが成功裏に送信されたためにsuccess()イベントを発生させることを意味します。

関連する問題