gpt4 book ai didi

javascript - jQuery 动态表单,且 PHP $_FILES 为空

转载 作者:行者123 更新时间:2023-12-03 12:09:46 25 4
gpt4 key购买 nike

我需要在 jQuery 中动态创建一个 HTML 表单,当我单击提交按钮时,我会通过 Ajax 将表单数据发送到处理它们的“add_sw.php”。

但我的问题是这个 PHP 脚本无法访问 PHP $_FILES 变量,所以它是空的..

下面是js相关的js代码:

<script type="text/javascript">
$("body").on("click", "#submit", function() {
var frm = $('#sw_add');
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('ok');
}
});

ev.preventDefault();
});
});
</script>

<script type="text/javascript">
$("body").on("change", "select", function() {
var tag = $("<div></div>");
var content = "<form id='sw_add' action='add_sw.php' method='post' enctype='multipart/form-data'>";
content += "<input type='text' name='sw_name'>";
content += "<label for='file'>Fájl:</label>";
content += "<input type='file' name='file' size='40'>";
content += "<textarea rows='4' cols='50' name='sw_comment'></textarea>";
content += "<div class='buttons'><button id='submit' type='submit'>Save</button></div>";
content += "</form>";
tag.html(content).dialog({title:'Add new software', modal:false, width:500, height:360}).dialog('open');
});
</script>

PHP 脚本的开头:

<?php
$sw_name = $_REQUEST['sw_name'];
$sw_file = $_FILES['file']['name'];
$sw_comment = $_REQUEST['sw_comment'];

// process the form datas...
?>

我的问题是“$sw_file”变量为空,我没有获取上传的文件名。为什么?

最佳答案

我修改了第一个js脚本,这是一个工作版本。

<script type="text/javascript">
$("body").on("click", "#submit", function() {
$("#sw_add").submit(function(e) {
var formObj = $(this);
var formURL = formObj.attr("action");
var formData = new FormData(this);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
mimeType: "multipart/form-data",
contentType: false,
cache: false,
processData: false,
success: function(data, textStatus, jqXHR) {
alert('ok');
},
error: function(jqXHR, textStatus, errorThrown) {
alert('error');
}
});
e.preventDefault();
e.unbind();
});
});
</script>

关于javascript - jQuery 动态表单,且 PHP $_FILES 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25013968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com