Javascript AJAX不能正确发送表单数据?
我正在做一些事情来发送一个图像文件和一些数据到PHP文件。所以我用一个表格来做这件事。这是我的JS代码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
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);
}
}
});