2015-02-21 2 views
0

Я пытаюсь опубликовать загруженный файл через ajax на php.jQuery Ajax post file

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 не будет выполнена правильно ...

Спасибо за вашу помощь!

+0

Отображается предупреждение. И из-за этого, я думаю, что я получаю успешный и обратный вызов. Извините, но как я могу их обработать? Спасибо за вашу помощь! – Contoweb

ответ

0

Вы не назначаете функции success или error.

Вы являетесь , вызывая функцию оповещения немедленно, а затем присваивая ее возвращаемое значение.

Вам необходимо создать новые функции для назначения success и error.

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

Вы также вызвать функцию в качестве обработчика представить, но не препятствуют нормальной формы представления. Следовательно, браузер будет загружать новую страницу перед обработкой ответа на запрос Ajax.

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

Hi Quentin Спасибо большое! Я забыл preventDefault(); ... – Contoweb

-1

Попробуйте реструктуризации ваш вызов AJAX с успехом и код ошибки, как это:

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

См http://api.jquery.com/jquery.post/ другие примеры.