我不知道自己做错了什么
我有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/