php - 如何使用 Ajax-Php 处理多个表单
问题描述
在 HTML 页面上,我有两个表单。Form1 包含几个输入。Form2 用于将文件上传到服务器,因此按下“上传”按钮会通过 Ajax 调用一个 php,该 php 处理文件并将其上传到服务器。我遇到的问题是我找不到一种方法来实现,当按下“上传”按钮时,文件会像现在一样上传到服务器,但也可以处理 form1 中的数据并将其保存在数据库。
<form method="POST" id="frm_one>
<input type="text" class="form-control" placeholder="Sol." aria-label="sc" aria-describedby="basic-addon1">
<input type="text" class="form-control" placeholder="ID DOC" aria-label="Username" aria-describedby="basic-addon1">
</form>
<form method="POST" id="frm_two>
<input type="text" class="form-control" placeholder="Piece" aria-label="sc" aria-describedby="basic-addon1">
<input type="text" class="form-control" placeholder="Order" aria-label="Username" aria-describedby="basic-addon1">
</form>
<form action="procesar.php" method="POST" enctype="multipart/form-data" id="frm_subedoc">
<input class="form-control p-1 border" type="file" name="file[]" id="selarchivos" multiple>
<button type="button" class="btn btn-info form-control mt-3" id="btn_subir">Subir Archivos</button>
</form>
通过 Ajax 发送如下:
$("#btn_subir").click(function(){
var Form=new FormData($("#frm_subedoc")[0]);
$.ajax({
url:"procesar.php",
type:"post",
data:Form,
processData:false,
contentType:false,
success: function(data){
$("#selarchivos").val('');
}
});
});
接收请求的 PHP 是:
<?php
session_start();
$carpeta="documentos/";
$files_post=$_FILES['file'];
.
.
.
?>
问题是,如果我使用单个表单,我在 form2 中声明的参数 ' enctype="multipart/form-data"会发生什么情况?会影响输入中传递的数据?。另外,如果你修改我在PHP中恢复数据的方式,即$_POST['field']?
解决方案
老实说,我不再使用很多插件,但这是我一直在使用的插件。为什么要重新发明轮子?
对于您的情况,在API & OPTIONS
他的文档页面上的选项卡上,请注意您可以随文件一起发送其他数据:
dynamicFormData: function()
{
//var data ="XYZ=1&ABCD=2";
var data ={"XYZ":1,"ABCD":2};
return data;
}
因此,在包含您的 AJAX 例程的函数中,您可以首先从其他表单中收集字段名称/值并将它们放入 javascript 对象中。然后,您可以使用上面的代码将该对象发送到接收该文件的服务器端配套 PHP 脚本。
还要注意Server Side
选项卡,它记录了后端 PHP 文件的外观。
参考:
推荐阅读
- linux - 使用 shell 脚本为 Oracle 用户生成随机密码
- caching - 索引和标签切换位置
- ios - adjustsFontSizeToFitWidth 在 iOS 14 上无法与 NSMutableAttributedString 一起正常工作
- c++ - Qt+wasm 客户端-服务器通信
- javascript - VideoJS 播放器自定义静音/取消静音切换
- python - 将宽数据格式转换为长数据格式
- android - 在 Android 7 设备的 SD 卡中写入文件
- reactjs - 在全新的 create-react-app 安装中的构建错误中检测到潜在的安全威胁(脚本访问“/initrd.img”、“/vmlinuz”等)
- python - Dockerfile RUN 命令返回 exec 格式错误
- python - 如何在我的不和谐机器人中更新 sqlite3 中的值