我正在为我的公司编写客户端数据库系统.没有太多花哨的东西,但它做到了它应该做的事情.
现在所有基本的“文本”内容都已完成,我想在其中添加一些文件管理.
我有几种形式可以使用ajax发送到后端,然后写入模型中的db.
我来给你一个表格示例:
<form action="SOMEPATH/LOGIC_FILE.PHP" action="POST" enctype= multipart/form-data>
<label for="name">
<input type="text" id="name" name="name" />
</label>
<label for="somethingElse">
<input type="text" id="somethingElse" name="somethingElse" />
</label>
<label for="fileUpload">
<input type="file" />
</label>
</form>
AJAX示例:
var name = $('#name').val();
var somethingElse = $('#somethingElse').val();
var dataArr = { 'name':name, 'somethingElse':somethingElse};
MYELEMENT.click(function(e){
e.preventEventDefault();
$.ajax({
url: "PATH/logic/logic_update_client_allg.PHP",
type: "POST",
data: allgArray,
success: function(dataArr){
// works
},
error: function(){
// doesnt work
}
});
}
这就是我如何处理我的INPUT VALUE提交
谢谢
解决方法:
对于ajax上传,您需要使用jQuery.ajax()方法中已有的xmlHttpRequest,但使用FormData.
如果您不是针对IE旧版本,例如7,8,则可以使用FormData.有一点需要注意,您必须将contentType,processData设置为false.
请参阅以下示例:
var name = $('#name').val();
var somethingElse = $('#somethingElse').val();
var fd = new FormData();
var dataArr = {
name: name,
somethingElse: somethingElse,
file : fd.append('file', $('#fileUpload').get(0).files[0]) // put the file here
};
MYELEMENT.click(function(e) {
e.preventDefault();
$.ajax({
url: "PATH/logic/logic_update_client_allg.PHP",
type: "POST",
data: dataArr, //<----post here the files and other values
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
success: function(dataArr) {
// works
},
error: function() {
// doesnt work
}
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。