0

jQueryモバイルにログインするためのこのコードがあります。しかし、それは機能せず、何も起こりません..送信すると同じページに戻ります。

彼がphpファイルを入力しない場合のように。

ajax スクリプトは次のとおりです。

   <script>
     $(document).ready(function(){
    $("#loginform").submit( function(){
    $.post('LoginExcution.php',
    $(this).serialize(), function(data){ $("#errorm").html(data)}};
    return false;
    }); 
</script>

ここにHTMLがあります:

<div data-role="page" id="login">
    <div data-theme="a" data-role="header">
</div>
<div data-role="content" style="padding: 15px">
    <div style="text-align:center">
        <img style="width: 50%; height: 50%" src="logo.jpg" />
    </div>
    <form id="loginform" method='post'>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="textinput2" style="text-align:right">
                           Email:
                        </label>
                        <input id="textinput2" name="login" value="" type="text"/>
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="textinput3" style="text-align:right">
                            Password:                            </label>
                        <input id="textinput3" name="password" value="" type="password"/>
                    </fieldset>
                </div>     
                <h3 id="errorm"> <?php if (isset($_GET['msg'])){ 

          echo "Invalid username or password";    
 } 


 ?></h3>
                <input type="submit" name="submit" id="submit" data-inline="true" data-  icon="arrow-l" data-iconpos="left" value="login"/>
            </form>

ここで LoginExcution.php:

                    //Sanitize the POST values
$login = $_POST['login'];
$password = $_POST['password'];

         $aqry="SELECT * FROM admin WHERE name='$login' AND password='".$_POST['password']."'";

           $employeeresult=mysql_query($eqry);  
            $adminresult=mysql_query($aqry);
    if( $employeeresult || $adminresult ){
     //Check whether the query was successful or not



                  if(mysql_num_rows($adminresult) == 1) {
        //Login Successful

        $member = mysql_fetch_assoc($adminresult);
        $_SESSION['MEMBER_ID'] = $member['AdID'];
        $_SESSION['NAME'] = $member['name'];


        header("location: mlogin.php");
        exit();
        }  
                            else { 
             //Login failed 
         header("Location: mobile/mlogin.php?msg=invalid%20name%20or%20password"); 
              exit(); 
             } 

ありがとうございました

4

1 に答える 1

2

あなたのスクリプトはめちゃくちゃです、これで試してください:

$(document).ready(function() {
  $("#loginform").submit(function() {
    $.post('LoginExcution.php', $(this).serialize(), function(data) { 
      $("#errorm").html(data); // semicolon missing in your code
    }); // round bracket and semicolon missing in your code
  }); // round bracket missing in your code
  return false;
}); 

さらに、個人的には、次のような JSON でエンコードされた結果を好みます

{ status: 'error', msg: 'some message text' }

また

{ status: 'ok', msg: 'logging in...' }.

その後、受信したステータスを切り替えることで、エラー メッセージを表示するか、「location.href = ...」を介して別のページにリダイレクトするかを決定できます。

于 2012-08-10T12:24:10.690 に答える