【问题标题】:Hide div dialog after finishing authenticating the user完成用户身份验证后隐藏 div 对话框
【发布时间】:2013-10-13 20:44:51
【问题描述】:

我有这个按钮,我想要它做的是验证用户并隐藏#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>

login.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);*/
?>

【问题讨论】:

  • 小事:您的代码中似乎有太多}。最后一个。是不是笔误?

标签: javascript php jquery authentication httprequest


【解决方案1】:

你可以这样做:

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

【讨论】:

    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2012-08-05
    • 1970-01-01
    相关资源
    最近更新 更多