php - 表单数据通过ajax和foreach一起上传多个文件
问题描述
我有一个包含多个字段的表单。此外,表单正在通过使用 ajax 的表单数据方法提交到 php 文件。
以下是提交表单数据的 javascript 代码。我在每个输入文件中上传多个文件,并且需要在提交时使用文件数组发送 id ...每次我上传文件并且单击提交时我得到foreach 循环的最后一次迭代referral_id....请有人帮我解决我出错的地方....
<form method="post" action="" enctype="multipart/form-data" id="uploadforms" onsubmit="return submitForm();">
<?php
foreach($result as $value)
{?>
<div class="form-group">
<h2>Choose Files</h2>
<h3><?php echo $value->test_name;?></h3>
<input type="file" name="files[]" class="form-control filein" id="files" multiple />
<input type="text" name="referral_id" class="form-control" value="<?php echo $value->ID;?>" />
</div>
<div class="form-group">
<input type="submit" name="fileSubmit" value="UPLOAD" data-referralid="<?php echo $value->ID;?>" id="submitbtn"/>
</div>
<?php
}
?>
</form>
我想发布在提交输入中传递的referral_id....我没有收到错误....数据正在提交,但是当我上传第一个迭代提交按钮并提交表单时,我得到了最后一个迭代的refer_id。假设referral_id 的数组是 $referral_id = array(1, 2, 3, 4); 每次我提交时,我都会得到 4 作为输出
$("form").submit(function(evt){
evt.preventDefault();
var referral_id=$("#submitbtn").data('referralid');
alert(referral_id);
var formData = new FormData($('#uploadforms')[0]);
console.log(formData);
$.ajax({
url: '<?php echo base_url("Upload_Files1"); ?>',
type: 'POST',
data: {referral_id: referral_id, files: formData},
async: false,
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false,
success: function (response) {
alert(response);
}
});
return false;
});
解决方案
我得到了输出
<form method="post" action="" enctype="multipart/form-data" id="uploadforms" onsubmit="return submitForm();">
<?php
foreach($result as $value)
{?>
<div class="form-group">
<h2>Choose Files</h2>
<h3><?php echo $value->test_name;?></h3>
<input type="file" name="files[]" class="form-control filein" id="files" multiple />
<input type="text" name="referral_id" class="form-control" value="<?php echo $value->ID;?>" />
</div>
<div class="form-group">
<input type="submit" name="fileSubmit" value="UPLOAD" data-referralid="<?php echo $value->ID;?>" id="submitbtn"/>
</div>
<?php
}
?>
</form>
Ajax 脚本
$("form").submit(function(evt){
evt.preventDefault();
var referral_id=$("#submitbtn").data('referralid');
alert(referral_id);
var formData = new FormData($('#uploadforms')[0]);
console.log(formData);
$.ajax({
url: '<?php echo base_url("Upload_Files1"); ?>',
type: 'POST',
data: {referral_id: referral_id, files: formData},
async: false,
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false,
success: function (response) {
alert(response);
}
});
return false;
});
推荐阅读
- listview - Xamarin.Forms ListView 选定项目保持突出显示,直到取消选择或选择其他项目
- java - 尝试运行迁移时出现 Flyway ExceptionInInitializerError
- python - k 表示具有固定约束的聚类(特定属性的总和应小于或等于 90,000)
- twilio - Twilio Autopilot 操作序列和超时配置
- sql - R 中的 sqldf 为 SQL CASE 语句中的所有行返回 NA
- java - 如何在 JavaFX 中打开另一个屏幕(不是 FXML 文件)
- java - easy-rules:是否有 if-else 规则?
- c# - MVC 项目重定向到 ?ReturnUrl=%2f
- excel - 具有多个条件的 INDEX MATCH 返回 N/A 结果,但匹配条件看起来正确
- arrays - 增加最后一个json数组对象的值