如何从jQuery返回.POST()数据?

时间:2011-11-27 01:19:05

标签: php jquery post

我正在尝试让一个php文件回显发送给它的POST值 - 没有太多运气。

使用Javascript:

$(".loginform").submit(function () {

    if ($(this).attr('rel') == "login") {

        $(this).attr('rel', 'loggedin')
        var $el = $(this);

        $.post("init.php", {name: "John", time: "2pm" }, function (data) {
            $el.after(data);
        })
    }

    return false;
});

PHP:

if($_POST["name"]){echo $_POST["name"];}; //WHY DOESN'T THIS WORK?

我有一种感觉,我不太了解传递的数据类型。任何帮助将不胜感激。

修改 我将.post更改为下面的内容,仍然无效。

$(".loginform").submit(function(){

    if($(this).attr('rel') == "login"){
        $(this).attr('rel', 'loggedin'); 
        var $el = $(this); 
        $.ajax({
            data: { name: "John", time: "2pm" },
            url: "init.php",
            dataType: "json",
            success: function(data){
                alert(data);
            }
        }); 
    }
    return false;
});

您可以转到http://thinkcloud.ly来尝试代码。点击“登录”,然后“提交”。 'login'使用.GET,所以我知道它有用。

4 个答案:

答案 0 :(得分:0)

你的问题仍然存在:

$el.after(data);

你需要用元素包装它们,尝试这样做:

$el.after('<span>' + data + '</span>');

如果这不起作用,您能否确认您使用alert(data)看到的内容?

答案 1 :(得分:0)

尝试

print_r( $_POST );
print_r( $_REQUEST  );

看范围。

&安培;&安培;与var_dump相同 它有时可以是json编码数据,使用json_ * php函数,所以...首先解码它。

BTW,firebug可以显示所有传递的变量。

jquery中的.post也有4个参数(http://api.jquery.com/jQuery.post/) 数据类型。 dataType服务器所需的数据类型。默认值:智能猜测(xml,json,脚本或html)。

使用json ...所以php脚本必须使用echo(json_encode($ arr))之类的东西将其返回到.post调用。

答案 2 :(得分:0)

您的javascript中有一对;

一旦你的javascript理顺,下一步就是确保数据实际传递。安装firebug。有了这个,您可以准确地看到发送给init.php的内容。这样您就可以知道错误发生的位置。

例如......用firebug你就会知道javascript没有正确启动并且可能发现错误。

答案 3 :(得分:0)

是的,请确保设置数据类型,并且可能需要使用$ .ajax,直到它开始工作:

$.ajax({
   data: { name: "John", time: "2pm" },
   url: "init.php",
   dataType: "json",
   success: function(data){
       alert(data);
   }
});