Html Ajax表单一个接一个地发送文件
我有一个用ajax发送的表单。 在这个表单中有x个输入文件,每个文件有2个输入文本 当我发送表单时,所有文件都同时发送 所以我想做的是一次发送一个文件和他的2个输入文本 这是我的密码: HTMLHtml Ajax表单一个接一个地发送文件,html,jquery,Html,Jquery,我有一个用ajax发送的表单。 在这个表单中有x个输入文件,每个文件有2个输入文本 当我发送表单时,所有文件都同时发送 所以我想做的是一次发送一个文件和他的2个输入文本 这是我的密码: HTML 选择您的姓名和图片: 抱歉没有打招呼:pIt看起来你已经在通往解决方案的路上了。你能描述一下它失败的地方吗?:)为什么不使用2个表单,即1个表单用于1个i/P,2个表单用于另一个i/P,并使用JS为表单提交提供时间延迟..您的代码应该为每个文件发送一个ajax请求,就像现在一样。但是我建议您在jQue
选择您的姓名和图片:
抱歉没有打招呼:pIt看起来你已经在通往解决方案的路上了。你能描述一下它失败的地方吗?:)为什么不使用2个表单,即1个表单用于1个i/P,2个表单用于另一个i/P,并使用JS为表单提交提供时间延迟..您的代码应该为每个文件发送一个ajax请求,就像现在一样。但是我建议您在jQuery.each循环中编写这段代码“var formData=new formData();”,因为您只是在每次迭代中向表单数据添加越来越多的文件。我做了一个foreach循环,但它会发送所有文件,我不知道如何发送每个文件
<div id="img_upload">
<form action="#" id="form" method="POST" enctype="multipart/form-data">
<div id="img_upload_head">
<?php
require MODULE.DS."galerie".DS."traitement".DS."galerie".DS."recup.php";
?>
<label for="nbImg">Selectionner le nombre d'image que vous voulez inserrer : </label>
<select name="nbImg">
<?php $nb = 10;
for ($i= 0; $i<=$nb; $i++){
?>
<option name="<?php echo $i;?>"><?php echo $i;?></option>
<?php
}
?>
</select>
</div>
<div id="img_upload_content">
<div id="content_head">
<div class="title_name">Selection fichier</div>
<div class="title_desc">Description</div>
<div class="title_price">Prix</div>
<div class="title_error">status</div>
</div>
<div id="content_list">
</div>
</div>
<div id="img_upload_foot">
<input type="submit" name="send" value="send" id="send" />
</div>
</form>
$(document).ready(function(){
$("select[name=nbImg]").hide();
$("#send").hide();
$("select[name=gal]").change(function(){
var galSelect = $(this).val();
if (galSelect != "none"){
$("select[name=nbImg]").fadeIn("fast");
$("select[name=nbImg]").change(function(){
var selfElem = $(this);
var nbImg = selfElem.val();
$("#content_list").empty();
for (var i = 1; i <= nbImg ; i++){
$("#content_list").append("<p id=\"file#"+i+"\"><span class=\"name\"><input type=\"file\" name=\"img[]\"id=\"img\" /></span><span class=\"desc\"><input type=\"text\" id=\"desc\" name=\"desc\" /></span><span class=\"price\"><input type=\"text\" id=\"price\" name=\"price\" /></span><span class=\"error\"></span></p>");
}
$("#send").fadeIn("fast");
$("#send").click(function(e){
e.preventDefault();
var form = $(this).parents("form");
var p = form.find("p");
var action = "/module/galerie/traitement/traitimg.php";
var desc = form.find("input[name=desc]").val();
var gal = $("select[name=gal]").val();
var price = form.find("input[name=price]").val();
var formData = new FormData();
jQuery.each($(p).find('input[name^="img"]')[0].files, function(i, file) {
formData.append('img-'+i, file);
formData.append('desc', desc);
formData.append('price', price);
formData.append('gal', gal);
jQuery.ajax({
url :action,
type : "POST",
processData: false,
contentType: false,
data: formData,
success: function(formData){
}
});
});
return false;
});
});
}else{$("select[name=nbImg]").fadeOut("fast");}
});
for (var i = 1; i <= nbImg; i++){
jQuery.each($(p).find('input[name^="img"]')[0].files, function(i, file) {
var formData = new FormData();
formData.append('img-'+i, file);
formData.append('desc', desc);
formData.append('price', price);
formData.append('gal', gal);
jQuery.ajax({
beforeSend : function(){
$(".error").empty().append("<img src=\"/media/design/img/loader.gif\"/>");
},
url :action,
type : "POST",
processData: false,
contentType: false,
data: formData,
success: function(formData){
$(".error").empty().append("<img src=\"/media/design/img/v.png\"/>");
}
});
});
}
jQuery.each($(p).find('input[name^="img"]')[0].files, function(i, file) {
var formData = new FormData();
formData.append('img-'+i, file);
formData.append('desc', desc);
formData.append('price', price);
formData.append('gal', gal);
jQuery.ajax({
beforeSend : function(){
$(".error").empty().append("<img src=\"/media/design/img/loader.gif\"/>");
},
url :action,
type : "POST",
processData: false,
contentType: false,
data: formData,
success: function(formData){
$(".error").empty().append("<img src=\"/media/design/img/v.png\"/>");
}
});
});