Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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
Javascript AJAX不能正确发送表单数据?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript AJAX不能正确发送表单数据?

Javascript AJAX不能正确发送表单数据?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在做一些事情来发送一个图像文件和一些数据到PHP文件。所以我用一个表格来做这件事。这是我的JS代码 var pictureForm = new FormData(); var imgFile = $('#avatarSelect')[0]; pictureForm.append('email', email); pictureForm.append('firName',editfirName); pictureForm.append('lstName',editlstName); pictu

我正在做一些事情来发送一个图像文件和一些数据到PHP文件。所以我用一个表格来做这件事。这是我的JS代码

var pictureForm = new FormData();
var imgFile = $('#avatarSelect')[0];
pictureForm.append('email', email);
pictureForm.append('firName',editfirName);
pictureForm.append('lstName',editlstName);
pictureForm.append('newPass',editpass);
pictureForm.append('newPhn', editphnNum);
pictureForm.append('pictureFile', imgFile.files[0]);

$.ajax({
        type: "POST",
        url: "php/accountUpdate.php",
        dataType:'json',
        data:{pictureForm},
        processData: false,
        contentType: false,
        success : function(response)
        {
            if(response==1)
            {
                alert("Success");

            }
            else
            {
                alert(response);

            }
        }
    });
和accountUpdate.php

<?php
if($_POST)
{
$userEmail= $_POST['email'];
$userPass= $_POST['newPass'];
$userPhone = $_POST['newPhn'];
$userFName= $_POST['firName'];
$userLName = $_POST['lstName'];
$servername ="localhost";
$username="root";
$password="";
$dbname="AS2014459";

// Some code
}
else
 echo json_encode("Error");
?>

我的问题

然而,这总是提醒我“错误”。表示$u POST设置不正确。我找不到原因。但是所有的变量,比如email,editfirname等等,都是正确设置的,并且都有值


另外,当我在本地服务器上运行时(删除PHP if($\u POST)条件),控制台日志显示未定义的索引:email。有什么猜测吗?

您没有关闭if/else语句,因此它每次都会回显错误,并使用isset($\u POST)

尝试使用布尔值(true更改1


您的表单标签是否使用“enctype=multipart/form data?”@Santosh我没有用HTML创建表单。我使用这些数据在JS中创建表单,并通过Ajax发送表单。所以很可能我没有把它放进去。您能告诉我如何在JS中设置enctype吗?在//some code部分,您将返回什么作为JSON?@Adder我创建一个数据库连接并更新数据库。实际上,在我将文件细节(如名称和位置)存储到数据库中之前,我只是使用ajax(无表单)传递数据。那一刻,这一切都很顺利。问题发生在我使用formdata@sam你可以试试这个。在$.ajax call contentType中的数据旁边:“multipart/form data”,您能说得更具体一点吗?不要使用if(response==1){alert(“success”);}而使用if(response==true){alert(“success”);}我只是在PHP中返回一个整数值。ajax不关心来自PHP文件的响应值是多少。响应将是AJAX的变量,而不是PHPWhich else语句?
var pictureForm = new FormData();
var imgFile = $('#avatarSelect')[0];
pictureForm.append('email', email);
pictureForm.append('firName',editfirName);
pictureForm.append('lstName',editlstName);
pictureForm.append('newPass',editpass);
pictureForm.append('newPhn', editphnNum);
pictureForm.append('pictureFile', imgFile.files[0]);

$.ajax({
        type: "POST",
        url: "php/accountUpdate.php",
        dataType:'json',
        data:{pictureForm},
        processData: false,
        contentType: false,
        success : function(response)
        {
            if(response==true)
            {
                alert("Success");

            }
            else
            {
                alert(response);

            }
        }
    });