php - 将 jquery 对象附加到 formData()
问题描述
我目前正在为某些网站开发后台办公室,并且在将文件和信息插入数据库时遇到了一些问题。首先,我不能以相同的形式上传文件和信息,而不必为每个其他输入声明一个变量,其次不能像往常一样将声明的对象附加到上传文件表单。
我尝试附加 as 和 object,但一些输入得到未定义的索引。
这是我尝试将对象附加到 formData() 的代码:
$(document).ready(function() {
$('#addinfo-form').submit(function(e) {
var info = {
'name':$('#name').val(),
'email':$('#email').val(),
'country':$('#country :selected').val()
}
var file = $('#file').prop('files')[0];
var new_info = new formData();
new_info.append('info', info);
new_info.append('file', file;
$.ajax({
type:'POST',
url:'add-info.php',
data:new_info,
dataType:'json',
processData:false,
contentType:false,
encode:true,
}
.done(function(data) {
})
.fail(function(data) {
});
e.preventDefault();
});
});
预期结果应通过 json 将信息发送到 php 文件,然后处理并插入数据库。
解决方案
尝试这个:
var info = {
'name': $('#name').val(),
'email': $('#email').val(),
'country': $('#country').val()
};
var file = $('#file').prop('files')[0];
var new_info = new FormData();
new_info.append("file", file, file.name);
new_info.append("info", JSON.stringify(info));
$.ajax({
type:'POST',
url:'add-info.php',
data:new_info,
dataType:'json',
processData:false,
contentType:false,
encode:true,
/*....*/
在你的 add-info.php
if (isset($_POST['info'])) {
$info = json_decode($_POST['info'], true);
echo $info["name"];
echo $info["email"];
echo $info["country"];
}
推荐阅读
- excel - 创建自定义表单控件
- javascript - javascript中的filter()
- inno-setup - 将窗口调整到尽可能小的尺寸时,在自定义页面上裁剪 TLabel 控件(在 Inno Setup 上)
- javascript - 从 Leaflet 中的动态点设置舒适的地图视图
- android - 如何更改 Android 中的“选择光标”颜色?
- php - 如何将我的 sql 中使用的代码更改为 oci?
- css - 如何使行高拉伸到容器的剩余高度?
- python - 将 Telethon 与 django 一起使用:线程 'Thread-1' 中没有当前事件循环
- python - 如何在 django 中获取有限数量的近期帖子
- python - 通过表单发布数据后未创建 django 对象