簡體   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