我有一个使用 ajax 提交的上传表单。
这一切都很好,但我想要做的是将我上传的文件的名称存储在隐藏的输入类型中,所以当我提交带有文本字段的表单时,图像的名称可以提交到数据库。
我注意到当我将主表单提交到数据库时,图像的名称已经丢失。我刚刚意识到输入文件在上传表单上,这就是为什么不会提交名称的原因。
我的问题是如何将上传文件的名称传递给我的其他表单?
在我的主要形式中,我想我会有一个
<input type="hidden" name="imgname" id="imgname" value="" />
这是我提交表单的 jquery
<script type="text/javascript">
$(document).ready(function() {
//elements
var progressbox = $('#progressbox');
var progressbar = $('#progressbar');
var statustxt = $('#statustxt');
var submitbutton = $("#SubmitButton");
var myform = $("#UploadForm");
var output = $("#output");
var lotterydiv = $("#lottovidpreview");
var completed = '0%';
$(myform).ajaxForm({
beforeSend: function() { //brfore sending form
lotterydiv.remove();
submitbutton.attr('disabled', ''); // disable upload button
statustxt.empty();
progressbox.slideDown(); //show progressbar
progressbar.width(completed); //initial value 0% of progressbar
statustxt.html(completed); //set status text
statustxt.css('color','#000'); //initial color of status text
},
uploadProgress: function(event, position, total, percentComplete) { //on progress
progressbar.width(percentComplete + '%') //update progressbar percent complete
statustxt.html(percentComplete + '%'); //update status text
if(percentComplete>50) {
statustxt.css('color','#fff'); //change status text to white after 50%
}
},
complete: function(response) { // on complete
output.html(response.responseText); //update element with received data
myform.resetForm(); // reset form
submitbutton.removeAttr('disabled'); //enable submit button
progressbox.slideUp(); // hide progressbar
}
});
});
</script>
我还假设我需要在 complete: function 部分做一些事情,但不知道是什么。我是否需要获取发送到 php 脚本的文件的名称来移动图像,或者我可以从客户端获取它吗?