0

私は自分のコードに本当に腹を立てているので、このコードについて 2 日間混乱しています。ユーザーのログインにjqueryとajaxを使用していますが、問題はajaxが機能せず、ログインページが自動的に更新されることです!! フォームを送信すると、送信イベントが起動しますが、その中の ajax コードが機能しません! 誰かがこのコードで私を助けてください。本当に感謝しています。

ここに私のlogin.phpがあります

<!doctype html>
<html>
<head>

    <!-- Basics -->

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Login</title>

    <!-- CSS -->

    <link rel="stylesheet" href="reset.css">
    <link rel="stylesheet" href="animate.css">
    <link rel="stylesheet" href="login.css">
    <link rel="stylesheet" type="text/css" href="reg.css"/>
    <script src="./jqlib/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
    <script>
    $(document).ready(function(){
        $("#login").submit(function()
        {



            $.ajax({

                url: 'loginopr.php',
                 type: 'POST',
                 dataType: 'html',
                    data:"phone="+$('#phone').val()+"&password="+$('#password').val(),
                success:function(response){
                    if(response == "2")
                        alert("شماره تلفن یا رمز عبور وارد شده اشتباه می باشد");

                    else{ if(response=="3")
                        alert("لطفا اطلاعات را به طرز درست وارد کنید");
                        }

                    }


                    });


    });



    }); 





    </script>



</head>

    <!-- Main HTML -->

<body>

    <!-- Begin Page Content -->

    <div id="container">

        <form  method="POST">

        <label for="name">تلفن همراه :</label>

        <input type="tel" required="" title="لطفا شماره همراه خود را به صورت صحیح وارد نمایید" x-moz-errormessage="لط
        فا شماره همراه خود را به صورت صحیح وارد نمایید" name="phone" id="phone">

        <label for="username">رمز عبور :</label>

        <input  type="password" required="" id="password" title="رمز عبور را وارد کنید" x-moz-errormessage="رمز عبور را وارد کنید" name="password">

        <div id="lower">

        <input type="checkbox"><label class="check" for="checkbox">مرا بخاطر بسپار</label>


        <input type="submit" value="ورود" id="login" ><br />
        <a style=" float: right; clear:both; margin-right: 10px;margin-bottom:10px; text-decoration: blink;" href="register.php">ثبتنام نکرده ام</a>
        </div>

        </form>
        <div class="footer">
            <div>
                    <a href="http://hameja123.ir">همه جا 123</a>
            </div>
                    کلیه حقوق این سایت محفوظ بوده و متعلق به
                    <a href="http://hameja123.ir">همه جا 123</a>
                    می‌باشد.
            <div style="direction:ltr; color: #ffffff;">hameja.ir - Copyright © 2013 - All rights reserved by Reza Tanzifi.</div>

        </div><!--end footer-->
    </div>


    <!-- End Page Content -->




</body>

</html>

ここに私の loginopr.php があります

<?php

include_once 'includes/function.php';
include_once 'user.php';
$user = new User();
if ($_SERVER["REQUEST_METHOD"] == "POST")
    {
        if(isset($_POST['phone']) && isset($_POST['password']) )
        {
            $phone = mysql_real_escape_string($_POST['phone']);
            $password = mysql_real_escape_string($_POST['password']);

        $login = $user->check_login($phone, $password);
            if ($login)
             {
// Login Success
                 header("location : buy-charge.php");

             }
        else
             {
        // Login Failed
                return 2;
             }
        }
    else {
        //field are empty
        return 3;
         }
    }
?>

問題は私のajaxコードとそのクライアント側に関するものだと思います。あなたの答えを待っています。ありがとうございます;)

4

4 に答える 4

2

送信ボタンをクリックすると、送信する必要があります。AJAX を添付したかどうかは関係ありません。それを修正するには、に変更し$("#login").submit(function(){...});ます

   $("#login").click(function(event){

        event.preventDefault(); // cancel the default action, i.e submiting the form

        // proceed to your AJAX:
        ... 

    });

また、PHP 部分で に変更returnします。これがページに表示されるものです。つまり、すべてのhtml、テキストなどとともにそこに出力されるものですecho.result

そして、ここで何度か言ったように

data: { 
    phone : $('#phone').val() , 
    password : $('password').val()
}
于 2013-08-15T08:30:07.883 に答える
0

これを試して 。フロントエンドのコードを変更しました。

<!doctype html>
<html>
<head>

    <!-- Basics -->

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Login</title>

    <!-- CSS -->

    <link rel="stylesheet" href="reset.css">
    <link rel="stylesheet" href="animate.css">
    <link rel="stylesheet" href="login.css">
    <link rel="stylesheet" type="text/css" href="reg.css"/>
    <script src="./jqlib/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
    <script>
    $(document).ready(function(){
  $("#login").click(function(){
    $.ajax({url:'loginopr.php',
            type:"POST",
            dataType: 'html',
          data:
              {
               "phone":$('#phone').val(),
               "password":$('#password').val()
               },
         success:function(response){
        if(response == "2")
               alert("شماره تلفن یا رمز عبور وارد شده اشتباه می باشد");
       else{ if(response=="3")
                       alert("لطفا اطلاعات را به طرز درست وارد کنید");
                       }

    }});
  });
});
    </script>



</head>

    <!-- Main HTML -->

<body>

    <!-- Begin Page Content -->

    <div id="container">

        <form  method="POST">

        <label for="name">تلفن همراه :</label>

        <input type="tel" required="" title="لطفا شماره همراه خود را به صورت صحیح وارد نمایید" x-moz-errormessage="لط
        فا شماره همراه خود را به صورت صحیح وارد نمایید" name="phone" id="phone">

        <label for="username">رمز عبور :</label>

        <input  type="password" required="" id="password" title="رمز عبور را وارد کنید" x-moz-errormessage="رمز عبور را وارد کنید" name="password">

        <div id="lower">

        <input type="checkbox"><label class="check" for="checkbox">مرا بخاطر بسپار</label>


        <input type="button" value="ورود" id="login" ><br />
        <a style=" float: right; clear:both; margin-right: 10px;margin-bottom:10px; text-decoration: blink;" href="register.php">ثبتنام نکرده ام</a>
        </div>

        </form>
        <div class="footer">
            <div>
                    <a href="http://hameja123.ir">همه جا 123</a>
            </div>
                    کلیه حقوق این سایت محفوظ بوده و متعلق به
                    <a href="http://hameja123.ir">همه جا 123</a>
                    می‌باشد.
            <div style="direction:ltr; color: #ffffff;">hameja.ir - Copyright © 2013 - All rights reserved by Reza Tanzifi.</div>

        </div><!--end footer-->
    </div>


    <!-- End Page Content -->




</body>

</html>
于 2013-08-15T08:46:04.360 に答える