繁体   English   中英

JQuery 的 .load 函数不会将变量传递给我的 PHP 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM