![](/img/trans.png)
[英]Javascript of selected php file won't load when using JQuery's load(file.php) method
[英]JQuery's .load function won't pass variable to my PHP file
我知道使用 JQuery 的 ajax 函数可以做到这一点,但我特别想尝试使用 JQuery 的.load()
函数来做到这一点。
这是我的代码:
HTML:
<form class="form" action="" method="POST" enctype="multipart/form-data">
<input type="file" name="csv-file">
<p class="upload-button">Upload</p>
<p class="upload-output"></p>
</form>
Javascript:
$('.upload-button').click(function() {
var formData = $('.form').serializeArray();
$('.upload-output').load('upload.php', formData);
});
当我点击upload-button
,表单被序列化并发送到我的名为upload.php
PHP 文件中。 这是upload.php
的内容——我目前只是检查它是否完全收到文件:
if(isset($_FILES['csv-file'])){
echo 'found file';
} else echo 'no file';
所有这些看起来都很好,但由于某种原因,它每次都no file
返回no file
,我不确定为什么。
我尝试了不同的输入类型,如text
字段、 textarea
,它们都可以工作,但是每当我尝试使用类型file
传递输入时,它都不起作用。 这是为什么? 以及如何使用.load()
将文件传递到我的 PHP 文件? 甚至有可能吗?
实际上,您不能以这种方式使用 Ajax 上传文件,因为 .serialize() 只为您提供文件名。
使用表单数据:
$('.upload-button').click(function() {
var formData = new FormData($('form')[0]);
$('.upload-output').load('upload.php', formData); });
另请参阅: 使用 jQuery.ajax 发送多部分/表单数据
以及: 如何异步上传文件?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.