Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP页面未接收jQuery/Ajax POST变量_Php_Jquery_Ajax_Post - Fatal编程技术网

PHP页面未接收jQuery/Ajax POST变量

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

我有一份非常简单的登记表。表单与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] => 
        )

)
我一辈子都搞不明白为什么它不接受后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实现了正确的操作。