Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/23: Рейтинг темы: голосов - 23, средняя оценка - 4.96
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
1

Ajax. Обработчик не принимает POST

02.08.2012, 13:15. Показов 4715. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня проблема. Есть форма, скрипт и обработчик.
Примерный код, специально упрощенный, но все так же не рабочий:

Форма:
HTML5
1
2
3
<form type="POST" enctype="multipart/form-data" name="callbackForm" id="callbackForm">
    <a href="#" class="orangeLink sendForm">Отправить</a>
</form>
Скрипт:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
$('a.sendForm').live('click', function() {
    $.ajax({
        url: "action_form.php",
        type: "POST",
        data: "name=John&location=Boston",
    contentType: "appilaction/x-www-form-urlencoded",
        cache: false,
        success: function(response){
        $("#callbackForm").empty(); 
            $("#callbackForm").append(response);
        }
    });
});
И обработчик:
PHP
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
Суть в том, что если у меня тип запроса GET, то все работает. Но если я меняю тип запроса на POST, то запрос проходит (в хроме смотрел запрос), но обработчик ничего не выводит.
Помогите, пожалуйста, подозреваю, что я упустил какую-то мелочь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2012, 13:15
Ответы с готовыми решениями:

Ajax не принимает ответ на post-запрос
Здравствуйте. Посылаю POST-запрос на чистом ajax php-сценарию. В php-файле происходит выборка из...

Ajax обработчик
Не знаю, как правильно назвать эту тему, так как я новичок. Итак, дана html форма с тремя полями...

$.post запрос и php обработчик
Доброго времени, Господа! Возникла проблема, не могу понять из за чего. Вобщем собираю данные с...

Передача Ajax в обработчик
Здравствуйте. Пытаюсь сделать переход по страницам технологией Ajax, но в обработчик постоянно...

7
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
03.08.2012, 15:02 2
Есть ряд вопросов:
Вы конечно здесь всё упростили, чтобы нам представить, но уж если отправляете данные кликом по ссылке, то:
1) нужно отменять стандартное действие ссылки - переход, используя preventDefault() (логичнее использовать button тогда ничего не нужно отменять);
2) Куда выводятся возвращённые данные? У вас:
Javascript
1
$("#callbackForm").append(response);
Но! Ведь и форма имеет id="callbackForm". Возвращённые данные записать в форму...?
3) В обработчике данные лучше занести в переменные.
Возможно я чего-то недопонял, вот возьмите рабочий вариант:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript" >
 $(document).ready(function(){
 
$('#sendForm').live('click', function(stop) {
    stop.preventDefault();
    $.ajax({
    type: "POST",
    url: "action_form.php",
    data:({name:'John',location:'Boston'}),
        cache: false,
        success: function(response){
        $("#callbackForm").empty(); 
            $("#callbackForm").append(response);
        }
    });
}); 
 
});/*End  ready */
    </script>
HTML5
1
2
3
4
<form action='action_form.php' method="POST" enctype="multipart/form-data" name="callbackForm" id="callbackForm1">
    <a href="#" class="orangeLink sendForm" id="sendForm">Отправить</a>
</form>
<div id="callbackForm"></div>
PHP
1
2
3
4
5
<?php 
if(isset($_POST['name'])){$name=$_POST['name'];}
if(isset($_POST['location'])){$location=$_POST['location'];}
echo $name." from ".$location;
?>
0
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
03.08.2012, 15:35  [ТС] 3
Цитата Сообщение от Soldado Посмотреть сообщение
1) нужно отменять стандартное действие ссылки - переход, используя preventDefault() (логичнее использовать button тогда ничего не нужно отменять);
У меня для кнопки отправки особенные стили, а как кастомизировать именно button я не нашел.

Цитата Сообщение от Soldado Посмотреть сообщение
2) Куда выводятся возвращённые данные?
Выводятся данные как раз вместо старых данных формы.

С рабочим вариантом попробую сейчас, спасибо.

Добавлено через 15 минут
Ваш пример не работает. Опять же, запрос идет, данные отсылаются, но по пути к обработчику как будто теряются.
Скрины:
Скрин отправки запроса:
Ajax. Обработчик не принимает POST

Скрин ответа:
Ajax. Обработчик не принимает POST


Вообще без понятия, что может быть не так, ведь все вроде изолированно от других компонентов сайта.
Причем POST, без обработки ajax прекрасно отсылается и получается.
0
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
03.08.2012, 15:37 4
Пример рабочий,смотрел на Денвере, попробую куда-то загрузить на сервер.


Цитата Сообщение от djagya Посмотреть сообщение
У меня для кнопки отправки особенные стили, а как кастомизировать именно button я не нашел.


Выводятся данные как раз вместо старых данных формы.
Относительно кнопки: можно придать стилями, какой угодно вид, вот в виде ссылки:
HTML5
1
<button id="sendForm" style="border: none; background-color: #ffffff; text-decoration:underline;">Отправить</button>
На счёт формы: данные возвращаются в элементы формы, на не в форму. Если у Вас в ней 5 импутов, текстовое поле, а данные возвращены строкой из обработчика, то куда они, по-вашему должны записаться. Нужно их "выдёргивать" из этой строки данных и записывать в конкретный элемент формы.
Вот здесь теория краткий запрос $.post().
0
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
03.08.2012, 15:46  [ТС] 5
Цитата Сообщение от Soldado Посмотреть сообщение
На счёт формы: данные возвращаются в элементы формы, на не в форму. Если у Вас в ней 5 импутов, текстовое поле, а данные возвращены строкой из обработчика, то куда они, по-вашему должны записаться. Нужно их "выдёргивать" из этой строки данных и записывать в конкретный элемент таблицы.
Я, быть может, не очень Вас понимаю. Я просто вместо всех инпутов, элементов и прочего внутри формы беру и всталяю данные, пришедшие от обработчика.

Но суть не в этом, а в том, что мне обработчик не присылает ничего. Переменная $_POST в нем пуста, как будто данные "по дороге" к обработчику теряются.
0
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
03.08.2012, 16:14 6
Форма это некое объединение если Вы ходите на место формы выводить данные, то необходимо форму завернуть в какой-то див например: <div id ="myForm"> .....</div>. Затем при приёме указывать:
Javascript
1
2
3
4
success: function(response){
        $("#myForm").empty(); 
            $("#myForm").append(response);
        }
Выложил свой пример здесь, единственное что изменил, это титле и ссылку заменил на кнопку
HTML5
1
<button id="sendForm" style="border: none; background-color: #ffffff; text-decoration:underline;">Button-Send</button>

Если хотите, выложу архив с исходниками.
1
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
05.08.2012, 17:04  [ТС] 7
Спасибо большое, я переписывал ваш пример сначала, и у меня ничего не работало, от отчаяния просто скопировал - и на удивление все заработало)

Добавлено через 1 час 6 минут
Тогда еще один вопрос по теме. А как можно отправить файл через ajax? Отправлять в iframe? И если да, то каким образом делается в общих словах?
0
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
05.08.2012, 19:53 8
Цитата Сообщение от djagya Посмотреть сообщение
Тогда еще один вопрос по теме. А как можно отправить файл через ajax? Отправлять в iframe? И если да, то каким образом делается в общих словах?
Используйте плагины. Самописный скрипт мало тут у кого получался. Если что, в личку, я вам ссылку кину.
0
05.08.2012, 19:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2012, 19:53
Помогаю со студенческими работами здесь

Ajax: Не видит файл-обработчик
Добрый день! Структура файлов показана на рисунке. В страницу view_News.php вставляется (include)...

Обработчик AJAX для url ссылки
есть одна игра написанная на PHP подскажите как обработать AJAx-сом href &lt;a...

Как повесить обработчик на загруженный ajax-ом контент
Здравствуйте. У меня вот такая проблема: На странице отображается 2 блока &quot;div&quot; с информацией,...

AJAX и POST
ajax.js function createObject() { var request_type; var browser = navigator.appName; if(browser...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru