我有一个非常简单的注册表格。表单随jQuery / Ajax一起发送到PHP页面进行处理。我在我的应用程序中到处使用这个相同的代码,但由于某种原因,在这一页上,它只是不起作用,我试图找出问题所在。这个页面没什么特别的,它在同一个域名上,所以我在这里不知所措......
提交表单时,以下jQuery函数处理表单:
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] =>
)
)
我不能为我的生活弄清楚为什么它没有收到POST变种。
任何?
*答案* 我为了演示目的更改了上面的网址,但在我的应用中,网址是:
var url = '/post/register';
并且寄存器文件夹中有一个“index.php”文件。
表单被发送到PHP页面但因为我错过了尾随的'/',查询字符串没有被正确发送。所以我的问题的答案是简单地将网址更改为:
var url = '/post/register/';
我这是一个多么愚蠢的错误 - 这花了太长时间才弄明白:S