Задать вопрос
@DixFrey

Как сделать отправку формы через ajax без удаления post?

Всем привет! Есть страница на которой есть форма которая отправляется через ajax
Форма:
<form method="post" action="javascript:void(null);" onsubmit="stGood()" id="genSteam">
    			<table>
    				<tbody>
    					<tr>
    						<th><span>Введите заголовок: </span><br><input type="text" size="30" name="stHeader" id="stHeader"></th>
    					</tr>
    					<tr>
    						<th><span>Введите описание: </span><br><input type="text" size="30" name="stDes" id="stDes"></th>
    					</tr>
    					<tr>
    						<th><span>Выберите картинку: </span><br><span class="fileee"><input type="file" name="stImage" id="stImage"></span></th>
    					</tr>
    					<tr>
    						<th><input type="submit" name="sand" value="Создать!" id="done"><br><br></th>
    					</tr>
    				</tbody>
    			</table>
    		</form>

Ajax:
function stGood() {
		var msg = $('#genSteam').serialize();
		$.ajax({
			type: 'POST',
			url: 'BDsteam.php',
			data: msg,
			success: function() {
				console.log("SECCESS");
				window.location.replace("http://localhost/BDsteam.php");
			},
			error: function() {
				console.log("ERROR");
			}
		});
	}

И когда пытаюсь вывести print_r($_POST); на странице localhost/BDsteam.php то массив пустой, как это исправить?
Так же пробовал var a = $_POST['stHeader']; переменная a тоже пустая...
  • Вопрос задан
  • 330 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
зачем ты делаешь обработку формы аяксом, если потом пишешь
window.location.replace("http://localhost/BDsteam.php");

?

Предполагаю, что на print_r ты смотришь уже после этого самого реплейса, при котором запрос проходит методом GET. Не удивительно, что $_POST массив пуст.

Если я неправ, расскажи подробней
Ответ написан
попробуйте так
data: {data: msg},
Ответ написан
ты отправляешь запрос аяксом, он отображается в fireBug консоли. Вот там и можно посмотреть что на сервер летит(вкладка post). Если на сервер ниче не уходит то это ошибка отправки на стороне браузера
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Слать обычным сабмитом на урл, куда редиректишься, событие сабмит перехватывать и делать проверку обычными if, если поля заполнены верно - возвращать true, иначе false. В общем как Роман Макаров написал. Тут AJAX вообще никаким боком не нужен...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы