PHP页面未接收jQuery/Ajax POST变量
我有一份非常简单的登记表。表单与jQuery/Ajax一起发送到PHP页面进行处理。我在我的应用程序中到处都使用相同的代码,但出于某种原因,在这一页上,它不起作用,我试图找出问题所在。在这个页面上没有什么特别的东西,它在同一个域上,所以我在这里不知所措 提交表单时,以下jQuery函数将处理表单:PHP页面未接收jQuery/Ajax POST变量,php,jquery,ajax,post,Php,Jquery,Ajax,Post,我有一份非常简单的登记表。表单与jQuery/Ajax一起发送到PHP页面进行处理。我在我的应用程序中到处都使用相同的代码,但出于某种原因,在这一页上,它不起作用,我试图找出问题所在。在这个页面上没有什么特别的东西,它在同一个域上,所以我在这里不知所措 提交表单时,以下jQuery函数将处理表单: var dataString = $(event.target).serialize(); var url = '/post/register.php'; console.log( dataStri
var dataString = $(event.target).serialize();
var url = '/post/register.php';
console.log( dataString ); // OUTPUTS firstname=Andrew&email=me@email.com
$.ajax({
type: "POST",
url: url,
data: dataString,
dataType: "text",
error: function(jqXHR,textStatus,errorThrown) {
// ERROR
},
success: handleRegistration
});
控制台显示表单中的数据已正确序列化
在PHP页面(register.PHP)上,我只需要以下代码:
$newArr[]= array('email'=>$_POST['email'], 'firstname'=>$_POST['firstname']);
ob_start();
print_r($newArr);
$c=ob_get_contents();
ob_end_clean();
$fp=fopen('test.txt', "wb");
fwrite($fp, $c);
fclose($fp);
这只是将POST变量写入一个名为“test.TXT”的TXT文件。文本文件显示变量为空:
Array
(
[0] => Array
(
[firstname] =>
[email] =>
)
)
我一辈子都搞不明白为什么它不接受后VAR
有人吗
*答案*
出于演示目的,我更改了上面的url,但在我的应用程序中,url是:
var url = '/post/register';
在register文件夹中有一个“index.php”文件
表单将被发送到PHP页面,但由于缺少结尾的“/”,因此查询字符串未正确发送。因此,我的问题的答案是简单地将url更改为:
var url = '/post/register/';
就我而言,这是一个多么愚蠢的错误——花了太长时间才弄明白:S尝试只使用
w
选项写入您的.txt文件。我认为b
选项适用于二进制文件。另外,我认为您可能需要附加。您将仅使用w
选项覆盖以前的任何条目。它与TXT文件写入无关。。。即使我用“echo$\u POST['firstname'];”替换打印内容。。。它将是空白的。好的。好吧,你可以把我的建议作为参考好吧,这可能看起来很愚蠢,但是尝试更改POST以进入PHP文件。几天前,我以类似的方式经历了同样的事情(使用jqueryajax和serializething),并使用GET而不是POST实现了正确的操作。