Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с формой и аяксом 
V
    Опции темы
NNaarreekk
Дата 4.11.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 2
Всего: 3



хочу отправлять данные через аякс, но так чтоб это было при онсубмит.
Возникла такая проблема, что при онсубмит страница переходит к ссылке в action=''

дело примерно так:
Код

<form action="" method="POST" onsubmit="return getResults()">
<input type="text" name="aname" id="aname" class="input"/>
<input type="submit" name="Create_Ad" value="Generate"/>
</form>


и js:
Код

function $(obj){return document.getElementById(obj);}
function getResults(){
//тут много раного всего

//как только доходит сюда отсылается данные обычным POST-ом
    JsHttpRequest.query(
        'a.php?x=c'+Math.random(), 
        {
        'aff_name': $('aff_name').value
        },
 
        function(result, errors) {
            if(errors)alert(errors);
            else{
                алерт(result);
            }
            alert(11);
            return false;
        }
    );
}


Как сделать так чтоб скрипт не передавал  POST-ом?

Код без ошибок, так что это не связанно с тем что сайт не доходит до return false; из за ошибки.

Спасибо за помощь!
PM MAIL WWW   Вверх
youri
Дата 5.11.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 2
Всего: 16



функция function(result, errors) вызывается по завершению ajax-запроса и return false там смысла не имеет. Потому что она не может ничего вернуть от имени функции getResults, даже если бы вызывалась до завершения getResults. А getResults завершается сразу после отправки запроса
PM   Вверх
NNaarreekk
Дата 5.11.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 2
Всего: 3



youri, я экспериментировал и забыл потом удалить.
Сейчас сделал по другому, просто ловлю нажатие ввода, для отправки данных и получается эффект формы.
Но это не решение этой проблемы.

Цитата(youri @  5.11.2009,  02:18 Найти цитируемый пост)
А getResults завершается сразу после отправки запроса 

Т.е. если я напишу ретурн фолс после отправки то до этой строки не дойдет, а если до запроса то запрос не сработает. Я правильно понял?

Прям патовая ситуация! smile 
PM MAIL WWW   Вверх
youri
Дата 5.11.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 2
Всего: 16



что у тебя происходит: вызывается getResults, она отправляет запрос и завершается. Т.е. фактически должна начаться отправка формы. Когда браузер получает ответ, вызывается function(result, errors), которая возвращает false фактически в никуда (или по-крайней мере не туда, куда нужно). Причем может браузер и не дожидается ответа, потому что началась отправка формы
PM   Вверх
NNaarreekk
Дата 5.11.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 2
Всего: 3



Цитата(youri @  5.11.2009,  18:12 Найти цитируемый пост)
что у тебя происходит: вызывается getResults, она отправляет запрос и завершается. Т.е. фактически должна начаться отправка формы. 

Вот вопрос именно в этом, как сделать чтоб отправка не начиналась??
PM MAIL WWW   Вверх
NLspieler
Дата 5.11.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 1
Всего: 19



Код

onsubmit="getResults(); return false;"


Самое, простое, что можно предложить. 

PM MAIL   Вверх
NNaarreekk
Дата 6.11.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 2
Всего: 3



Цитата(NLspieler @  5.11.2009,  22:32 Найти цитируемый пост)
onsubmit="getResults(); return false;"

Да, я тоже думал что так сработает, но не получилось.
Так даже не работает если не посылать запрос аяксом а просто алертом что-нить показать.
Работает только когда делаешь 
Код

onsubmit="return foo()"

а в  foo:
Код

function foo(){
alert('Что-нить');
return false;
}


При ссылках нормально работает обычный ретурн фолс, а в формах как-то глючит((
PM MAIL WWW   Вверх
youri
Дата 6.11.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 2
Всего: 16



Цитата(NNaarreekk @  6.11.2009,  13:33 Найти цитируемый пост)
Да, я тоже думал что так сработает, но не получилось.Так даже не работает если не посылать запрос аяксом а просто алертом что-нить показать.

невозможно, приведи html-код тестовой странички с alert'ом, который неработает
PM   Вверх
NNaarreekk
Дата 6.11.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 2
Всего: 3



Цитата(youri @  6.11.2009,  16:50 Найти цитируемый пост)
невозможно,

Закон подлости! Я испробовал все варианты начиная с 
Цитата(NLspieler @  5.11.2009,  22:32 Найти цитируемый пост)
onsubmit="getResults(); return false;"

и никак не получалось. Теперь когда нужно показать пример все работает. Самое странное что я этот метод писал не раз и все время не работало! smile  smile  smile 

Проблема решена!

youri
NLspieler, спасибо за помощь!
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0951 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.