Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с отправкой формы

30K
12 февраля 2011 года
Morphling
74 / / 17.01.2010
Господа, в общем ситуация такая:
есть форма, с текстовым полем и кнопочкой сабмит. Теперь, когда нажимаю на сабмит, форма отправляет данные и открывает тот файл, который я указал в action формы. Вот как можно эту переадресацию убрать? Чтоб когда нажал на сабмит, кроме отправки данных, ничего не происходило? Заранее спасибо!
13
12 февраля 2011 года
RussianSpy
3.0K / / 04.07.2006
Читайте про AJAX
369
12 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: RussianSpy
Читайте про AJAX


Дополню лишь, что:
1. Или вместо submit ставите тип элемена button, на который вешаете скрипт
2. самой форме приписываете onsubmit="submit_function()";
и вызываете функцию, которая занимается отправкой вашей формы аяксом.
ВАЖНО! для того, чтобы не происходило перехода, выполняемая функция должна возвращать в форму false...

т.е.

submit_function() {
bla-bla-bla
проверка данных...
отправка данных

return false;
}

30K
12 февраля 2011 года
Morphling
74 / / 17.01.2010
Цитата: RussianSpy
Читайте про AJAX



а можно поподробней? что должно быть в атрибуте action формы?

30K
12 февраля 2011 года
Morphling
74 / / 17.01.2010
Цитата: Kesano
Дополню лишь, что:
1. Или вместо submit ставите тип элемена button, на который вешаете скрипт
2. самой форме приписываете onsubmit="submit_function()";
и вызываете функцию, которая занимается отправкой вашей формы аяксом.
ВАЖНО! для того, чтобы не происходило перехода, выполняемая функция должна возвращать в форму false...

т.е.

submit_function() {
bla-bla-bla
проверка данных...
отправка данных

return false;
}



спасибо, алгоритм понятен, попробую реализовать ...

30K
12 февраля 2011 года
Morphling
74 / / 17.01.2010
у меня че то не получается (после нажатия на button, ничего не происходит), незнаю в чем причина, предоставляю код:
 
Код:
<form action="cgi.php" &#111;&#110;Submit="return false;" method="post">
        <input type="text" value="" size=25 name="poletext" /><br>
        <input type="button" &#111;&#110;click="this.form.submit();" value="Отправить" name="submit"/>
    </form>

скажите пожалуйста, где я ошибаюсь?
369
13 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: Morphling
у меня че то не получается (после нажатия на button, ничего не происходит), незнаю в чем причина, предоставляю код:
 
Код:
<form action="cgi.php" &#111;&#110;Submit="return false;" method="post">
        <input type="text" value="" size=25 name="poletext" /><br>
        <input type="button" &#111;&#110;click="this.form.submit();" value="Отправить" name="submit"/>
    </form>

скажите пожалуйста, где я ошибаюсь?



Преамбула:
Молодой программер подходит к бородатому АСМщику, протягивает исходники:
- Посмотри пожалуйста, где у меня тут ошибка?
Бородатый посмотрел на исходники, на программера, снова на исходники:
- В ДНК!

Амбула:
Вы неправильно поняли.... Ваша форма должна выглядеть так:

 
Код:
<script type="text/javascript>
submit_function() {
 {AJAX REQUEST}
 return false;
}
</script>
<form action="cgi.php" &#111;&#110;Submit="submit_function();" method="post">
        <input type="text" value="" size=25 name="poletext" /><br>
        <input type="submit" value="Отправить" name="submit"/>
    </form>


Где {AJAX REQUEST} вы должны заменить на аякс-запросы.
или обратитесь к jquery.com
или пишите свой обработчик - документация (понятная) http://xmlhttprequest.ru/
30K
13 февраля 2011 года
Morphling
74 / / 17.01.2010
ура, решил эту проблему! немного разобравшись, понял, что мне, при использовании аякса, форма вообще не нужна и удалил ее, оставил только инпуты. В общем, вот конечный код:
 
Код:
<input type="text" value="" size=25 id="pole" /><br>
<input type="button" &#111;&#110;click="myFunc();" value="Отправить" />

скрипт:
 
Код:
function myFunc(){
        $.post('cgi.php', {poletext: document.getElementById('pole').value});
    }

в общем все гуд, всем спасибо за помощь! :D
8
14 февраля 2011 года
mfender
3.5K / / 15.06.2005
нет, форма всё таки нужна. и не только для того, чтобы использовать кнопку Cancel. Есть достаточно ясная позиция: поля всегда существуют в форме, ибо поле без формы - порожняк и головняк. Например:
 
Код:
$.post('cgi.php', {poletext: document.getElementById('pole').value});

Вот кто его знает, чёрт возьми, где ещё встретится в документе елемент с id pole. А так мы имеем коллекцию форм, каждая из которых имеет совершенно чёткий набор полей.
369
14 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: mfender
нет, форма всё таки нужна. и не только для того, чтобы использовать кнопку Cancel. Есть достаточно ясная позиция: поля всегда существуют в форме, ибо поле без формы - порожняк и головняк. Например:
 
Код:
$.post('cgi.php', {poletext: document.getElementById('pole').value});

Вот кто его знает, чёрт возьми, где ещё встретится в документе елемент с id pole. А так мы имеем коллекцию форм, каждая из которых имеет совершенно чёткий набор полей.



Не в тему замечание...
[HTML]<form name="form1" >
<input type="text" name="pole" id="pole"/>
</form>
<form name="form231" >
<input type="text" name="pole" id="pole"/>
</form>[/HTML]
И какая разница? Если на одной странице куча форм, то вам нужно искать элемент через массив forms, а простым getElementById('pole') вы получите первое или последнее поле в ДОМе с таким элементом... в форме оно у вас или не в форме...

13
14 февраля 2011 года
RussianSpy
3.0K / / 04.07.2006
В итоге вместо того чтобы отправить автора топика читать документацию и просвещаться, вы его запутали еще больше своими формами и баттонами.
369
14 февраля 2011 года
Kesano
451 / / 09.10.2007
ТопикСтартер! RTFM!!! )))
http://xmlhttprequest.ru
http://htmlbook.ru
http://www.php.net
http://javascript.ru

А что, универсальный ответ получается )
30K
14 февраля 2011 года
Morphling
74 / / 17.01.2010
Всем спасибо, получил много знаний создав этот топик =)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог