php - 尝试使用文本框上传多个文件,但在提交时,表单名称、日期文本没有价值
问题描述
此代码允许我正确保存文件并将名称保存到数据库,但文本框 (Name, date) 值是空的,尽管它具有输入值。
这是带有 JavaScript 的 PHP 和 HTML 文件。
索引.html
<html>
<head>
<title>Load files</title>
<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#savepr').submit(function (e) {
e.preventDefault();
var myfiles = document.getElementById("myfiles");
var files = myfiles.files;
var data = new FormData();
for (i = 0; i < files.length; i++) {
data.append('file' + i, files[i]);
}
$.ajax({
url: 'php/saveorder.php',
type: 'POST',
contentType: false,
data: data,
processData: false,
cache: false
}).done(function (msg) {
$('#savemodal').modal('hide');
setTimeout(function () {
swal({
title: "Nice!",
text: "Done Saving Request !",
type: "success",
confirmButtonText: "OK"
},
function (isConfirm) {
if (isConfirm) {
window.location.href = "index.php";
}
});
}, 1000);
});
});
})
;
</script>
</head>
<body>
<form role="form" className='savepr' name="savepr" id="savepr" encType="multipart/form-data" method="post">
<div id="upload">
<div className="fileContainer">
<input id="myfiles" type="file" name="myfiles[]" multiple="multiple"/>
<input id="date" type="date" name="date"/>
<input id="name" type="name" name="name"/>
</div>
<button className="btn btn-success btn-flat" id="submit" name="submit">Confirm</button>
</div>
</form>
<div id="loadedfiles">
</div>
</body>
</html>
这是 PHP 插入查询。
$queryadd=mysqli_query($link,"insert into attachment
(FILENAME,DATE,NAME) VALUES (
'".$name."','".$DATE."','".$NAME."')");
解决方案
您永远不会将表单值添加到发送到服务器的数据中,只有文件:
var data = new FormData();
for (i = 0; i < files.length; i++) {
data.append('file' + i, files[i]);
}
只需添加它的值:
data.append('date', $('#date').val());
data.append('name', $('#name').val());
推荐阅读
- d3.js - d3.js 动态图片库示例
- javascript - 停止 onclick 事件处理程序
- bash - 在 bash 中为 cmd 命名,无需编辑脚本
- c - 为什么多线程不能提高这个程序中寻找素数的性能?
- google-apps-script - Gmail API 似乎将消息的时间戳四舍五入到分钟
- python - discord.py(重写)如何向特定频道发出命令
- python - 寻找一种检查数学运算的方法
- html - 如何使难度条动态化?
- android - 安装 Flutter 和 Dart 后 Build.Gradle 文件损坏
- reactjs - React Native Button onPress 性能