簡體   English   中英

jQuery Ajax發布文件

[英]jQuery Ajax post file

我嘗試通過ajax將上傳的文件發布到php。

HTML

<form id="uploadForm" name="uploadForm" action="#" enctype="multipart/form-data"> 
<input id="name" name="name" class="form-control" type="text" />
<input id="csv" name="csv" type="file" />
<input id="CSVUpload" type="submit" class="btn btn-default" name="Submit" value="Hochladen" />

JS

$("#uploadForm").submit(function () {
    var formData = new FormData();
    formData.append( 'csv',  $( '#csv' )[0].files[0] ); 
    formData.append( 'name', $( '#name'));
    jQuery.ajax({
        url: "../lib/import.php",
        data: formData,
        type: "POST",
        success: alert('erfolgreich'),
        error: alert('Fehler'),
        cache: false,
        contentType: false,
        mimeType: 'multipart/form-data',
        processData: false
    });     
});

然后我嘗試在PHP中獲取表單數據:

$_FILES['csv']
$_POST['name']

但是Ajax調用以成功和錯誤來完成...我很困惑... PHP文件將無法正確執行...

謝謝你的幫助!

您不是要為successerror分配功能。

您正在立即 調用警報功能,然后分配其返回值。

您需要創建新功能以分配給successerror

success: function () { alert('erfolgreich') },
error: function () { alert('Fehler') },

您還以提交處理程序的形式調用該函數,但並沒有阻止正常表單的提交。 因此,瀏覽器將在處理對Ajax請求的響應之前加載新頁面。

$("#uploadForm").submit(function (event) {
    event.preventDefault();

嘗試使用以下成功和失敗代碼重構AJAX調用:

$.post('../lib/import.php', formData).done(function() {
    console.log('done');
}).fail(function() {
    console.log('error');
});

有關更多示例,請參見http://api.jquery.com/jquery.post/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM