post()获取和返回php jquery

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"); 无反应 发生了什么事?这样做有效果吗 $.

我正在做下一个

用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) {
    $("#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");
. . .