我有一个JS对象,它收集表单值并将它们存储到数组中。
var myJSObject = {
names = [],
images = [],
....
}
我遇到的问题是我的表单包含图像,我试图将它们存储在JS对象中并通过Ajax发送整个内容。但是我的images`数组总是空的。
更新
抱歉因为我忙于其他项目而拖延。这是我的JS类:
HTML:
<div class="form-section">
<div class="form-element">
<input class="upl-img" type="file" />
</div>
<div class="form-element">
</div>
<div class="form-element">
<input class="upl-img" type="file" />
</div>
</div>
JS:
var formElement = function(options){
var defaults = {
elemID : 0,
elemText : " ",
elemnOrder : 0,
mandatory : false,
elemType : 0,
elemImage : null,
formFields : []
}
//Some methodes
this.construct(options);
}
var formSection = function(options){
var defaults = {
sectionID : null,
sectionTitle : " ",
sectionOrder : 0,
formElements : []
}
//Some methodes
this.construct(options);
}
所以我的formSection包含一个formElement数组。每个formElement都可以包含最终用户可以上传的图像。
当最终用户点击提交按钮时,函数将创建一个新的formSection对象并注入所有formElements对象。最终的formSection对象需要通过Ajax发布。我试图使用FormData对象来收集文件但没有成功。
谢谢
答案 0 :(得分:0)
HTMLElement对象是复杂的对象,图像元素实际上是您计算机上的文件,因此如果可能,则意味着将文件上传到服务器,这意味着服务器需要特定于其脚本。我确定你不能发一个简单的帖子或获得http请求。 JSON用于在对象注释样式中传递基本类型。
你可以做的是使用一个插件,例如Uplodify,它包含一个PhP脚本,可以通过提供URI从你的计算机上传文件到服务器。 但这意味着php脚本需要在服务器上进行调优。