Показать сообщение отдельно
  #1 (permalink)  
Старый 15.06.2016, 12:00
Новичок на форуме
Отправить личное сообщение для Lu_smith Посмотреть профиль Найти все сообщения от Lu_smith
 
Регистрация: 15.06.2016
Сообщений: 5

Отправить данные из file, hidden, text на сервер вне form и получить ответ AJAX/PHP
Здравствуйте, помогите пожалуйста.
Дано: разнотипные поля (hidden, submit, file) без формы <form>
Задача: с помощью js создать форму, закинуть в нее значения со всех данных полей, всё это передать файлу php ( а точнее в обработку php-скрипта, который находится в этом же файле), и вывести результат(ответ) php-скрипта на эту же страницу без перезагрузки.

Файл для загрузки - это excel
Все остальные поля тоже должны быть переданы в управление/обработку php
Тег <form> использовать нельзя/не надо.

Сделала скрипт, отдает ответ положительный, о том что всё передано, но в msg показы данные только с поля type=file, а в php ничего не приходит и не выводится.

Периодически ругается еще

"Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/."

Помогите пожалуйста.

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>

<div id="excelload">
	<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
	Выберите файл:
	<input name="userfile" id="load_file" type="file" value="" />
	<input type="submit" value="Загрузить" name="submit_load" id="submit_load" />
</div>

<p class="modal"></p>


<script>
$('#excelload #submit_load').click(function() {

var formData = new FormData();

formData.append('MAX_FILE_SIZE', $('#excelload input[type=hidden]').val());
formData.append('submit_load', $('#excelload input[type=submit]').val());
formData.append('userfile', $('#excelload input[type=file]')[0].files[0]);

/*var xhr = new XMLHttpRequest();
  xhr.open("POST", "<? echo $_SERVER['REQUEST_URI'] ?>", true);
  xhr.setRequestHeader('Content-Type', 'multipart/form-data;');
  xhr.send(formData);*/
 
$.ajax({
    type: "POST",
    url: "<? echo $_SERVER['REQUEST_URI'] ?>",
	//dataType: "json",
    data: formData,
	
    contentType: false,
    processData: false,
    success: function(msg) {
        $(".modal").html("<code>GooD!"+msg+"</code>");
    },
    error: function() {
        $(".modal").html("<pre>Sorry! Couldn't process your request.</pre>");
    }
});

});

</script>


<?php

if(isset($_POST['submit_load'])) {
	$data1 = $_FILES;
	$data1_name = $_FILES['userfile']['name'];
	
	$data2 = $_POST;
	
    echo json_encode($data1);
    echo json_encode($data1_name);
	
    echo json_encode($data2);
}

?>


</body>
</html>

Последний раз редактировалось Lu_smith, 15.06.2016 в 12:40.
Ответить с цитированием