post()获取和返回php jquery
我正在做下一个 用php从html请求(jQuery) 从php返回html格式(jQuery) 但是返回“您现在登录未定义”。您的密码是:未定义” 怎么了?如何修复它 附言 当我像这样添加“json”时post()获取和返回php jquery,php,jquery,ajax,Php,Jquery,Ajax,我正在做下一个 用php从html请求(jQuery) 从php返回html格式(jQuery) 但是返回“您现在登录未定义”。您的密码是:未定义” 怎么了?如何修复它 附言 当我像这样添加“json”时 $.post("index.php?res=ok", { username: user, userpass: pass }, function(data) { . . . . . . . . . . . . }, "json"); 无反应 发生了什么事?这样做有效果吗 $.
$.post("index.php?res=ok", { username: user, userpass: pass }, function(data) {
. . . . . .
. . . . . .
}, "json");
无反应
发生了什么事?这样做有效果吗
$.post("index.php?res=ok", { username: user, userpass: pass }, function(data) {
$("#signin_ok").html("You sign in now "+data[0].name+". Your password is: "+data[0].pass);
$("#signin_ok").show()
.animate({fontSize:"120%"}, 100).css({color:"#32CD32"})
.animate({fontSize:"100%"}, 100)
.animate({fontSize:"100%"}, 3000)
.animate({fontSize:"120%"}, 200, function() {
$(this).css({display:"none"});
});
});
尝试使用以下命令将JSON头添加到PHP脚本中
header('Content-type: application/json');
// then your code
另外,您似乎只是返回传递的数据,为什么不直接使用user和pass作为数据,而不是data.user和data.pass?我将使用$.ajax调用来响应,因为这往往是我使用的,因为$.post只是包装了$.ajax
$.ajax({
type: "POST",
url: "index.php?res=ok",
data: { "username" : user, "userpass": pass },
success: function(msg) {
var data = $.parseJSON(msg);
alert(data.username);
alert(data.userpass);
}
});
我自己解决了这个问题,我想是的:) 我已经创建了新文件(new.php): 我得到的结果是:)
但这很愚蠢,为什么它在index.php中不起作用?您是否尝试过使用fiddler或firebug来查看服务器返回的内容?执行console.log(数据)并查看(例如在Chrome中)结果。如果结果是字符串,则必须eval()它的结果是
{“name”:“sabotagnik”,“pass”:“666666”}
我必须在PHP或JS中eval()它?如果在PHP中:$arr=array(“name”=>$username,“pass”=>$userpass);评估(\$arr=\“$arr\”;”;echo json_编码($arr)代码>的结果是“Array”
不要忘记确保您的PHP脚本设置了JSON headers:header('Cache-Control:no Cache,必须重新验证');页眉(‘到期日期:1997年7月26日星期一05:00:00 GMT’);标题('Content-type:application/json');下一步我已经试过了<代码>如果(isset($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$userpass=$\u POST['userpass'];echo json_encode(数组(“name”=>$username,“pass”=>$userpass));}
但它不起作用没有反应:(.这只是一个例子..这就是我不使用user的原因。我只需要从php返回数据--天哪。这太简单了。我在json_encode(..)之后添加了exit;
)
仅此而已
header('Content-type: application/json');
// then your code
$.ajax({
type: "POST",
url: "index.php?res=ok",
data: { "username" : user, "userpass": pass },
success: function(msg) {
var data = $.parseJSON(msg);
alert(data.username);
alert(data.userpass);
}
});
<?php
if(isset($_REQUEST['res']) && $_REQUEST['res'] == "ok") {
if(isset($_POST['username']) && isset($_POST['userpass'])) {
$username = $_POST['username'];
$userpass = $_POST['userpass'];
$arr = array("name" => $username, "pass" => $userpass);
echo json_encode(array("name" => $username, "pass" => $userpass));
}
}
?>
. . .
$.post("new.php", { "username": user, "userpass": pass, "res": "ok" }, function(data) {
$("#signin_ok").html("You sign in now "+data['name']+". Your password is: "+data['pass']);
console.log(data);
$("#signin_ok").show()
.animate({fontSize:"120%"}, 100).css({color:"#32CD32"})
.animate({fontSize:"100%"}, 100)
.animate({fontSize:"100%"}, 3000)
.animate({fontSize:"120%"}, 200, function() {
$(this).css({display:"none"});
});
}, "json");
. . .