отправить текст сообщения ввода данных и файл (php, jquery, ajax) событие click

У меня есть одна форма HTML, то у меня есть 2 ввода (входной текст и входной файл)
моя проблема ввода текста не может отправить сообщение для загрузки php.
Я использовал JQuery AJAX для публикации данных

upload.php

<?php$nama   = $_POST['name'];
$filename = $_FILES['file']['name'];var_dump($nama);
var_dump($filename);

форма

 <form method='post' action='' enctype="multipart/form-data">
<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required />

Select file : <input type='file' name='file' id='file' class='form-control' ><br/>

<input type='button' class='btn btn-info' value='Upload' id='upload'>
</form>
<script type="text/javascript" >
$(function() {
$("#upload").click(function() {
var name = $('#name').val();
var fd = new FormData();
var files = $('#file')[0].files[0];
fd.append('file',files);

$.ajax({
type: "POST",
url: "upload.php",
dataType: 'text',  // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: fd,
success: function(){

}
});
return false;
});
});
</script>

0

Решение

Просто удалите dataType: текст. Или вы можете использовать dataType: «json» согласно вашему требованию. Ну, вы можете прочитать больше об этом dataType здесь также: $ .ajax — dataType

А для параметра name вам не хватает добавить эту переменную в переменную fd.

Итак, ваш скрипт должен быть таким:

<script type="text/javascript" >
$(function() {
$("#upload").click(function() {
var name = $('#name').val();
var fd = new FormData();
var files = $('#file')[0].files[0];
fd.append('file',files);
fd.append('name',name); // you were missing this, that's why $_POST['name'] was blank
$.ajax({
type: "post",
url: "upload.php",
cache: false,
contentType: false,
processData: false,
data: fd,
success: function(){

}
});
return false;
});
});
</script>

Теперь попробуйте распечатать приведенный ниже код в файле upload.php:

<?php
echo $nama   = $_POST['name'];
echo $filename = $_FILES['file']['name'];
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]