我正在尝试让一个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,所以我知道它有用。
答案 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);
}
});