php - jQuery AJAX,PHP 通过 JSON 返回(登录表单)

标签 php jquery ajax json

我不知道自己做错了什么

我有2个文件: 登录.php 索引.php

<script type="text/javascript">  
$(document).ready(function(){  
$('#btnLogin').bind('click', loginToWebsite);
});
function loginToWebsite(){
     $.ajax({  
     url: "login.php",
      type: "POST",  
      data: "username=" + $("#username").val()+"&password=" + $("#password").val(),
    datatype:"json",
      success: function(status)
      {  
        if(status.success == false) 
        {  
            $("#loginform").effect("shake", {times:2}, 100); 
            $("#login_message")  
                .attr('class', 'ui-state-error')  
                .html('<strong>ERROR</strong>: Your details were incorrect.<br />');  
        } 
        else { 
                 $("#login_message")  
                .attr('class', 'ui-state-highlight')  
                .html('<strong>PERFECT</strong>: You may proceed. Good times.<br />');  
            }  
      }  
    });  
} 
</script> 

login.php gile 看起来像这样:

<?php
if (isset($_POST['username'])&& isset($_POST['password']))
{
    if (login ($_POST['username'], $_POST['password'])){
        $data = array("success" => true);
        echo json_encode($data);
    }
    else {
        $data = array("success" => false);
        echo json_encode($data);
    }
}?>

但是我从login.php(通过json)返回未定义

如果我尝试警告(status.success),它会打印未定义

我可以看到用户名和密码正在发送到 login.php 页面的 header 。

PHP 函数 login() 在其他地方实现(并返回 true 或 false)

最佳答案

看来通过变量“status”传递给javascript的值是一个字符串。所以你必须将字符串转换为json对象。要将字符串转换为 json 对象,请使用以下脚本。使用最新的 jquery 库,因为较旧的库使用不同的函数将字符串转换为 json。


    var obj = jQuery.parseJSON(status);
    alert(obj.success);

关于php - jQuery AJAX,PHP 通过 JSON 返回(登录表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690675/

相关文章:

php - Laravel 5 类 'App\Http\Controllers\File' 未找到

php - Laravel 5 "Trying to get property of non-object"传递多个连接表值查看时出错

php - Laravel 会在每次调用时重新加载类吗?

javascript - 焦点事件后防止点击

php - Imagick(PHP 上的 Imagemagick): serve a file without saving to disk first?

javascript - jQuery:追加后无法选择新元素

javascript - 滚动条上的淡入元素

javascript - 如何从事件 ajax :error in Rails 5. 1 的响应中获取数据

php - 5 分钟长轮询示例的简单指南不起作用

javascript - 通过对 Flask 的函数调用更新值