簡體   English   中英

Ajax URL:參數並檢查是否成功

[英]Ajax url: parameter and checking for success

我不確定這是如何工作的,但是我的成功(數據)價值從何而來? 我必須在url / php / login.php中返回一個值嗎?

 $.ajax({     
  url: 'php/login.php',    //must i return a value in login.php?                    
  data: {username:username,password:password},
  type: "POST",    
  dataType: 'json',                  
  success: function(data)          
  {
     if(data == true){
        console.log("sdfsdfs   " + data);
        login.submit();
    }
     else{
        console.log("NO DATA PRESENT");
     }       
  } 
     //else do an alert("please lgo in again");    
 });  

在php / login.php中,我查詢數據庫以查看該用戶是否存在以及密碼是否匹配

我的login.php的一部分

 <?php
 echo $username = $_POST['username']; //not echo-ing
 echo $password = $_POST['password'];  
 if ($_POST['login']) //check if the submit button is pressed
 {
   $remember = $_POST['remember'];  
   if ($username&&$password) //check if the field username and password have values
   {
     $dbhost = 'localhost';
     $dbuser = 'root';
     $dbpass = '';

     $connect=mysqli_connect($dbhost,$dbuser,$dbpass) or die("Unable to Connect");  
    mysqli_select_db($connect,"clients") or die("Could not open the db");
    $sql = "SELECT * FROM clients.users WHERE username='$username'";
    $login = mysqli_query($connect, $sql);
    if (mysqli_num_rows($login))
    {
        while ($row = mysqli_fetch_assoc($login)) 
        {
            $db_password = $row['password']; 
            if ($password==$db_password)
            {   
                $loginok = TRUE;
                echo json_encode( true );
            } else {
              echo json_encode( false );
              echo "Please re-enter username and password, they did not match";            
              header("Location: ../login.php");
            }      
   ?>

當您想使用ajax返回某些數據時,需要在腳本中回顯將被ajax調用的數據。 如果請求成功,它將把您在腳本中回顯的所有內容返回到您在成功函數中指定的參數中。

success: function(data)          
  {
     // code...
  }

因此“數據”將包含腳本的結果,然后您就可以執行任何操作。

編輯:

好吧,我會這樣解決

 $db_password = $row['password']; 

        if ($password==$db_password)
        {   
            echo json_encode(array("status" => "ok", "message" => "Login successful!"));
        } else {
          echo json_encode(array("status" => "error", "message" => "Please re-enter username and password, they did not match!"));         
          //header("Location: ../login.php"); you don't need this
        }

您無法回顯json,然后再回顯一些文本。 您可以,但是完全不建議這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM