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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jQuery+ajax+формы 
:(
    Опции темы
kit_kat
Дата 25.1.2008, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: нет
Всего: 6



Здравствуйте!
У меня на нескольких вкладках (tabs) формы.
По нажатию на кнопку, хотелось бы отправить все значения с каждой формы с помощью ajax, но не получается.  
Пока что работает это:

Код

function submit_all(){

                $("form").each(
                    function(){
                        var data_ajax="name=John&location=Boston";
                       // здесь конечно надо составить пары имя:ключ для каждого элемента формы
                     $.ajax({
                            type: "POST",
                            url: "/admin/config/primer.php",
                            data: data_ajax,
                            success: function(msg){
                                alert( "Data Saved: " + msg );
                            }
                     });
                    }

                )


            }


У меня не получается:
1. Получить пару значение:ключ элементов формы, так как я заранее не знаю всех имен элементов. Вариантов перебрала много, children() и т.д. Что-то неверно, не могу понять что конкретно.
Помогите. пожалуйста. Это в принципе первый опыт с jQuery.

Заранее спасибо.
PM MAIL WWW   Вверх
ksnk
Дата 25.1.2008, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



Код

var data_ajax=$(this).serialize();

Помогло?
Правда стоит уточнить, что-же хочется сделать? Если послать все формы по записанным в самих формах action'ах, то можно посмотреть в сторону плагина forms, там это сделано прозрачнее. Если нужно действительно послать по одному и тому-же адресу ВСЕ данные из ВСЕХ форм, то нужно сначала склеить все данные, а затем ОДИН раз их послать AJAX'ом...
Код

function submit_all(){
                     $.ajax({
                            type: "POST",
                            url: "/admin/config/primer.php",
                            data: $("form").serialize(),
                            success: function(msg){
                                alert( "Data Saved: " + msg );
                            }
                     });
            }


Это сообщение отредактировал(а) ksnk - 25.1.2008, 09:14


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
kit_kat
Дата 25.1.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: нет
Всего: 6



Что-то посты множатся сами


Во втором варианте тоже приходит пустой запрос, только соответственно один, а не по кол-ву форм.
 smile  

Код

function submit_all(){
                     $.ajax({
                            type: "POST",
                            url: "/admin/config/primer.php",
                            data: $("form").serialize(),
                            success: function(msg){
                                alert( "Data Saved: " + msg );
                            }
                     });
            }



Это сообщение отредактировал(а) kit_kat - 25.1.2008, 10:43
PM MAIL WWW   Вверх
kit_kat
Дата 25.1.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: нет
Всего: 6



ksnk, спасибо

В итоге 
Код

var data_ajax=$(this).serialize();
 не помогает. Смотрю var_dump($_POST) (в php файле, конечно) и получаю Array(0) {}


Да, я хочу послать ВСЕ данные ВСЕХ форм по одному адресу. Сейчас еще попробую. 
PM MAIL WWW   Вверх
ksnk
Дата 25.1.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



А что говорит alert($('form').serialize()) ? Если он данные правильно сформировал - дальше должно работать... 
А если GET использовать - поможет? 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
kit_kat
Дата 25.1.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: нет
Всего: 6



alert($('form').serialize())  говорит что ничего не определено
=undefined&=undefined&=undefined

Форма на вкладке
Код

<div id="tab1"><form  id="form_tab1" method="post" >Ширина иконки rrr<br />
                        <input type=text name="admin_width_icon2" value="777" size=60><br />Ширина иконки nnn<br />
                        <input type=text name="admin_width_icon3" value="22" size=60><br /></form></div>




GET тот же результат. Странно, в примере с официального сайта jQuery все отлично с формы отправляется, не могу понять что у меня не так



Это сообщение отредактировал(а) kit_kat - 25.1.2008, 16:53
PM MAIL WWW   Вверх
ksnk
Дата 25.1.2008, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



А если сказать alert($('#form_tab1').serialize()) ? 

В форме 2 поля, а ругается на 3. может какие еще левые формы в страничке присутствуют?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Dr.Zlo
Дата 31.1.2008, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Кстати, у меня была та же проблема, нужно было отправлять аяксом данные формы, но я не мог разобраться с прототиповским аяксом, в итоге забил на прототип и сделал так:

Код


.................

    var url = parent_form.action +'?' + parent_form.serialize();
        send_request(url)

..................


function send_request(url){ 
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.open("GET", url, true);
        req.send(null);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.open("GET", url, true);
            req.send();
        }
    }
    get_answer();
}

function get_answer(){ 
    if(req.readyState==4){
                $('result').innerHTML = req.responseText;
    } else
    tmer=setTimeout('get_answer();', 200);
}


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


 




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


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

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