【发布时间】:2013-11-24 01:54:10
【问题描述】:
我目前正在使用以下代码通过 AJAX 发布我的表单:
$(document).ready(function(){
$("form#createForm").submit(function() { // loginForm is submitted
$("form#createForm input#createForm_submit").attr('disabled','disabled');
tinyMCE.triggerSave();
$.ajax({
type: "POST",
dataType: "json",
url: "perform", // URL of the Perl script
data: $("#createForm").serialize(),
// script call was successful
// data contains the JSON values returned by the Perl script
success: function(data){
$('div.form-group').each(function(){
$(this).removeClass('has-error');
});
if (data.error) { // script returned error
var myList = $('ul.msg-list').empty();
$.each(data.msg, function(key,item) {
$("div."+key).addClass('has-error');
$('<li>').text(item.errtxt).appendTo(myList);
});
$('div#create_createresult').html('some error').html(myList);
$('div#create_createresult').addClass("text-danger");
$("form#createForm input#createForm_submit").removeAttr('disabled');
} // if
else
{ // login was successful
//$('form#login_loginform').hide();
$('div#create_createresult').text(data.msg);
$('div#create_createresult').addClass("success");
} //else
} // success
}); // ajax
$('div#login_loginresult').fadeIn();
return false;
});
});
现在我想添加以相同形式上传图片的可能性,并在此 JQUERY 和相同的服务器端脚本中实现它。我唯一的问题是,我不知道该怎么做。我已经测试了上面的内容,我发现它没有将 $_FILES 变量传递给我的服务器端脚本。
任何人都可以引导我了解我需要做什么,以添加使用此脚本上传图片的可能性吗?
【问题讨论】:
-
第一步,不要使用.serialize()。你需要使用window.formData,我建议研究一下。另请注意,许多版本的 IE 都不支持它。
-
@KevinB:嗯,IE 不是问题......你建议做什么呢?我会查看 formData - 也许忘记 jquery 并使用普通帖子代替.. :)
标签: javascript php jquery ajax file-upload