Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Отправка формы, созданной ajax

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

sardvd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех.
Возникла проблема: есть страница, на ней динамически создается форма. Форма отправляется в скрытый iframe при помощи target=iframename, где обрабатывается asp-страницей. Точнее, должна отправляться. Проблема в том, что при использовании method=post нифига не отправляется. А если его поменять на get, тогда все ок.
Сегодня выяснил еще одну штуку. Страница в iframe как бы кэшируется. Потому что если изменить страницу action, тогда отправляется и через post. Первый раз. А потом опять, что ни меняй - данные из формы воспринимаются только через get.
Попробовал дописать случайный параметр в action (время до секунды), чтобы как бы изменить адрес страницы. Толку ноль.
 
Что делать?

Всего записей: 126 | Зарегистр. 16-12-2007 | Отправлено: 09:28 11-02-2011 | Исправлено: sardvd, 11:46 11-02-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sardvd

Цитата:
Страница в iframe как бы кэшируется.

чем? страница на вашем сервере?  

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 10:41 11-02-2011
sardvd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На локальной машине, в качестве сервера - webmatrix.
 
Добавлено:
Форма создается аяксом, кладется в див. Выдрал свою форму, положил в отдельный файл. Все работает гуд.
Переделал форму на отправку через ajax. Та же шняга - при отправке через get все отправляется, а через post - нифига. Тело запроса формируется нормально, но до страницы-обработчика не доходит.
Вывод: формы, подгруженные аяксом, через post не отправляются. Осталось выяснить, почему и как с этим бороться.

Всего записей: 126 | Зарегистр. 16-12-2007 | Отправлено: 10:42 11-02-2011
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Можно попробовать post-запрос отправлять странице вида /page.asp?hex=24725, где 24725 - случайное генерируемое число

----------
www.MyFirstSite.ru - информационный ресурс для начинающих веб-мастеров

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 11:51 11-02-2011
sardvd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Читайте первое сообщение:

Цитата:
Попробовал дописать случайный параметр в action (время до секунды), чтобы как бы изменить адрес страницы. Толку ноль.

Всего записей: 126 | Зарегистр. 16-12-2007 | Отправлено: 12:00 11-02-2011
poyt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sardvd

Цитата:
Вывод: формы, подгруженные аяксом, через post не отправляются. Осталось выяснить, почему и как с этим бороться.

Не совсем понятно, а как вы в коде AJAX отправляете форму методом POST, можно код строчки?
И тестовый пример тех данных, которые не отправляются.
Так как на моей практике AJAX-ом отправлялись любые данные и через POST и GET, и самописно и при использованиии jQuery.
 
А чтобы бороться с кешированием - в запросе требуется дополнительно переменная, каждый раз принимающая  случайное значение.

Всего записей: 642 | Зарегистр. 26-06-2006 | Отправлено: 12:05 11-02-2011
sardvd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При клике на кнопку "отправить" срабатывает SendForm.
В него передаются:
url - адрес asp-страницы обработчика
div - куда выгрузить ответ
params - список полей формы, которые надо отправить
method - метод отправки
 
----------------------------код-------------------------------
function SendForm(url,div,params,method) {
    var sendParams = "";
    var params = params;
    var Params = params.split(",");
    for(i = 0; i < Params.length; i++){
        sendParams = sendParams+Params[i]+"="+encodeURIComponent(document.getElementById(Params[i]).value)+"&";
    }
    var req = getXmlHttp()
    req.onreadystatechange = function() {
    if (req.readyState == 4) {
        if(req.status == 200) {
            document.getElementById(div).innerHTML=req.responseText;
            AddJava(div,req.responseText)
            }
        else {document.getElementById(div).innerHTML = req.statusText}
        }
    }
    if (method == "post") {
        req.open('POST', url, true);
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
        req.send(sendParams);
        }
    else {
        req.open('POST', url+sendParams, true);
        req.send(null);
    }
}
--------------------------------------------------------------

Всего записей: 126 | Зарегистр. 16-12-2007 | Отправлено: 12:08 11-02-2011
poyt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sardvd
По коду - вроде верно всё и должно работать.
 

Цитата:
Сегодня выяснил еще одну штуку. Страница в iframe как бы кэшируется. Потому что если изменить страницу action, тогда отправляется и через post. Первый раз. А потом опять, что ни меняй - данные из формы воспринимаются только через get.
Попробовал дописать случайный параметр в action (время до секунды), чтобы как бы изменить адрес страницы. Толку ноль.  

Что значит "изменить страницу action"?
 
И как происходило это "Попробовал дописать случайный параметр в action (время до секунды), чтобы как бы изменить адрес страницы"?

Всего записей: 642 | Зарегистр. 26-06-2006 | Отправлено: 13:16 11-02-2011
sardvd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
poyt, это сделать action="write.asp?p=12:33:28", то есть, подставляется текущее время, которое при следующем обновлении страницы уже другое.
 
Проблему победил, но как - так и не понял. Переписал весь код, сделал его немного читаемее, и указал обработчиком другую страницу. Заработало :%;№"%:...

Всего записей: 126 | Зарегистр. 16-12-2007 | Отправлено: 17:17 11-02-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Отправка формы, созданной ajax


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru