【问题标题】:unable to show alert message based on data fetched from php无法根据从 php 获取的数据显示警报消息
【发布时间】:2017-10-18 04:18:23
【问题描述】:

action.php 中的代码

if(isset($_POST["username"]))  
 {  
      $query = "  
      SELECT * FROM Admin 
      WHERE Username = '".$_POST["username"]."'  
      AND Password = '".$_POST["password"]."'  
      ";  
      $result = mysqli_query($connect, $query);  
      if(mysqli_num_rows($result) > 0)  
      {  
           $_SESSION['username'] = $_POST['username'];  
           echo 'Yes';  
      }  
      else  
      {  
           echo 'No';  
      }  
 }  
 if(isset($_POST["action"]))  
 {  
      unset($_SESSION["username"]);  
 } 

index.php 中的代码

$(document).ready(function(){  
      $('#login_button').click(function(){  
           var username = $('#username').val();  
           var password = $('#password').val();  
           if(username != '' && password != '')  
           {  
                $.ajax({  
                     url:"action.php",  
                     method:"POST",  
                     data: {username:username, password:password},  

                     success:function(data)  
                     {  
                          //alert(data);  
                          if(data == 'No')  
                          {  
                               alert("Wrong Data");  
                          }  
                          else  
                          {  
                               $('#loginModal').hide();  
                               location.reload();  
                          }  
                     }  
                });  
           } 

在上面的 index.php 代码中,总是执行 else 部分。所以我相信没有从action.php代码中接收到数据但是$_SESSION['username'] = $_POST['username'];在action.php代码中的部分代码被执行了。

所以我的问题是为什么没有按预期发送“是”或“否”。

我们将不胜感激任何形式的帮助;

【问题讨论】:

  • alert(data) 显示什么?您是否尝试过确保您的 php 脚本没有创建额外的空白?即在data上使用trim()
  • 没有多余的空格@Patrick
  • 如果 trim() 成功了,那就成功了。正如 trim 所做的那样,删除前导/尾随空格
  • @PatrickEvans 如上面 action.php 中的代码所示,没有空格。但是当我尝试这个时: alert('('+data+')');它打印(否)。即,有额外的空间。我不明白为什么会出现这种行为。
  • 空白可以是任何空格,包括新行。这通常是因为您在 php 标签<?php ?> 之外有一些空白区域,这些空白区域可能不容易看到。始终确保在这些标记之前或之后没有空格,或者确保在适当的地方使用 trim()

标签: javascript php ajax login


【解决方案1】:

在警报中使用“数据”.. 你拼错了

【讨论】:

  • @user2486 抱歉,这是个错误,我编辑了我的问题。还是不行
  • 控制台是否有错误检查,如果没有检查按钮的id是否相同
  • 检查数据:{"username":username, "password":password} 是否解决了问题
  • alert(data)console.log(data)的结果是什么?
  • 一切都很好,只是数据没有正确发送。如果我把警报部分放在其他地方,它会显示警报消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
相关资源
最近更新 更多