1

我有这个按钮,我想要它做的是验证用户并隐藏#dialogcontainer.

<button onclick=" authenticate();">Register</button>

每当我检查 xmlhttp.responseText 时,它工作正常,但是当我尝试将它分配给一个变量以进行条件比较时,这就是我遇到问题的时候。

我想做的是使用 login.php 文件检查用户是否存在,并根据 xmlhttp.responseText 我想关闭对话框。

<script>
function login(){
                var username= $("#txtloginusername").val();
                var password = $("#txtloginpassword").val();


                if (window.XMLHttpRequest)
                    {
                        xmlhttp=new XMLHttpRequest();
                    }
                 else

                        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                    }

                 xmlhttp.onreadystatechange=function()
                    {
                        if (xmlhttp.readyState==4 && xmlhttp.status==200)
                        {
                            //var status = document.getElementById  ("logindisplay").innerHTML=xmlhttp.responseText;
                            var status =xmlhttp.responseText;

                            $("#logindisplay").html(status);
                           /*if(status=="yes")
                                {
                                    $("#logindisplay").html("user exist");
                                }
                                else
                                    {
                                      //$("#dialogcontainer").slideUp();  
                                      $("#logindisplay").html("NO");
                                    }*/
                        }
                    }
                  xmlhttp.open("GET","login.php?username="+username +"&password=" + password,true);
                  xmlhttp.send();


            }
</script>

这是用户身份验证的 div 对话框,我希望它在完成身份验证后消失

<div id="dialogcontainer">
            <div id="dialog">
                <h3>Welcome to Talk Login</h3>
                <p>Username</p>
                <input type="text" id="txtloginusername"/>
                <p>Password</p>
                <input type="password" id="txtloginpassword"/> <br /><br />
                <button onclick="login()">Login</button>
                <button onclick="javascript:$('#dialogcontainer').slideUp();">Exit</button>
                <br>
                <br>
                <div id="logindisplay" class ="display"></div>

            </div>
</div>

登录.php 文件

<?php


$username= $_GET["username"];
$password= $_GET["password"];

$db = mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("esk",$db);

$sqlcommand = "SELECT * FROM user WHERE username = '$username'";
$result = mysql_query($sqlcommand,$db);


if(mysql_num_rows($result)>=1)
   {
    echo "yes";
   }
 else
    {
     echo "no";

    }
//$result = mysql_query($sqlcommand,$db);*/
?>
4

1 回答 1

0

你可以这样做:

function login() {
   var username= $('#txtloginusername').val();
   var password = $('#txtloginpassword').val();

   $.ajax({
      url: 'login.php', 
      type: 'POST', 
      data: {
         username: username, 
         password: password
      }, 

      success: function(response) {
         if ( response === 'yes' ) {
            $('#logindisplay').html('user exist');
         } else {
            $('#logindisplay').html('NO');
         }
      },

      error: function(xhr) {
         // do something nice with errors you might get
      }
   });
}

只要这个对话框是用来登录的,你就不应该GET请求而使用POST

于 2013-10-13T20:58:41.140 回答