Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Несколько $(document).ready(function(){ или как? (https://javascript.ru/forum/jquery/2910-neskolko-%24-document-ready-function-%7B-ili-kak.html)

Electric200 25.02.2009 15:02

Несколько $(document).ready(function(){ или как?
 
Добрый день!
Прошу помощи у форумчан так уже несколько дней не могу разобраться. :blink:

Есть форма select , которая отправляет на обработчик значение value. Обработчик делает запрос в БД и возвращает назад на страницу результат в виде следующей формы selecta. Проще говоря, єто форма выбора Страна/Область/Город.
Выбор Страна/Область я сделал через
$(document).ready(function(){

  var options = {

  	target: "#city_form",
    beforeSubmit: showRequest,
    success: showResponse,
    timeout: 3000
  };


  $('#сountry_form').submit(function() {
    $(this).ajaxSubmit(options);



    return false;
  });

});


function showRequest(formData, jqForm, options) {

    var queryString = $.param(formData);

     var formElement = jqForm[03];
    alert('Вот что мы передаем: \n\n' + queryString);

    return true;
}


function showResponse(responseText, statusText)  {


    alert('Статус ответа сервера: ' + statusText + '\n\nТекст ответа сервера: \n' + responseText +
        '\n\nЦелевой элемент div обновиться этим текстом.');
}
</script>


Вот у меня обновляется див элемент #city_form второй формой.
Теперь мне нужно при выборе с второй формы снова отправить данные на файл обработчик..
Но как это сделать, незнаю.. Пытался использовать тот же скрипт с указание уже другой формы, но так не срабатывает..

Прошу вашей помощи, и заранее благодарен!!

x-yuri 26.02.2009 22:55

а что такое ajaxSubmit? #city_form - элемент form? У тебя обновление второго списка происходит по кнопке submit?

Electric200 26.02.2009 23:24

Да
 
Спасибо что откликнулся.. :)

Да, обновление второго списка проходит по sabmity.
#city_form - это div элемент который обновляется.
Он обновляется нормально.. Но как послать снова запрос с обновленной формы - не знаю.. :agree:

x-yuri 27.02.2009 01:01

1. а что такое ajaxSubmit?
2. а не лучше ли второй список по onchange (select) обновлять?
3. как у тебя срабатывает '$(this).ajaxSubmit(options);'. Для этого в div'е #city_form должно возникнуть событие submit

Electric200 27.02.2009 10:16

1. По пермому не знаю, взял пример скрипт с мануала api
2. Да лучше, но как сделать не хватает мозгов, подскажи плиз?
3. Тут я сделал опечатку, поправил в коде (выделил красным).

target: "#city_form" - это див который обновляется
$('#country_form').submit(function() {
$(this).ajaxSubmit(options); - тут $('#country_form') Это форма в которой проходит submit.

Вот это код формы

echo "<form id='country_form'   name='sel_count'   method='post' action='form_area_next.php'>
        <select name='it_mid_count' input type='hidden'>  ";
                                                                                // Так как запрос возвращает несколько строк, применяем цикл
  while($name = mysql_fetch_array($name_count))
  {
    echo "

         <option value =".$name['itemid_country'].">".$name['name_country']."</option>

         ";
  }
   echo " </select>
    <input id='submit1' type='submit' name='submitButton' value='OK' />
    </form>

x-yuri 27.02.2009 15:11

1. так поищи хотя бы где в коде у тебя такая функция определяется
2. перехватывай событие change select'а
$('#selectId').change(function() {...})

Electric200 27.02.2009 15:37

Дык весь код я же привел.. :( Где она там еще может определятся :cray:

2. перехватывай событие change select'а

$('#selectId').change(function() {...})

а что это даст?

x-yuri 27.02.2009 15:43

Цитата:

Дык весь код я же привел.. Где она там еще может определятся
ты как минимум jquery подключаешь - поищи в файлах своего проекта, где есть функция ajaxSubmit? Но, вообще, если ты знаешь как ей пользоваться - забей

Цитата:

а что это даст?
событие change select'а возникает, после изменения пользователем текущего пункта. Т.е. можно будет перезагружать следующий select не по нажатию книпки submit

Electric200 27.02.2009 15:50

Ну ОК. Сделаю я допустим отправку по change вместо submit, результат тот же.. А как быть с другой формой? Тоесть первую по сабмиту а вторую по change ?

ПС а как тут карму добавлять то? а то что то добавил, а не показывает..

x-yuri 27.02.2009 16:14

Цитата:

2. а не лучше ли второй список по onchange (select) обновлять?
Цитата:

2. Да лучше, но как сделать не хватает мозгов, подскажи плиз?
Цитата:

2. перехватывай событие change select'а
$('#selectId').change(function() {...})
Цитата:

а что это даст?
подумай об этом диалоге

Цитата:

Ну ОК. Сделаю я допустим отправку по change вместо submit, результат тот же.. А как быть с другой формой? Тоесть первую по сабмиту а вторую по change ?
оба списка (Область, Город) обновляешь по событию onchange предыдущего списка. "Область" - по onchange списка "Страна", "Город" - по onchange списка "Область". Т.е. у тебя будет 2 обработчика onchange. Каждый из них отправляет запрос на сервер для получения данных для следующего списка. Для отправки запроса на сервер можешь использовать http://docs.jquery.com/Ajax/load#urldatacallback или свой ajaxSubmit (если знаешь как им пользоваться)


Часовой пояс GMT +3, время: 03:20.