Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2013, 14:01
Интересующийся
Отправить личное сообщение для Jopses Посмотреть профиль Найти все сообщения от Jopses
 
Регистрация: 05.02.2013
Сообщений: 20

Самоплодящийся <option>
Здравствуйте уважаемые!

Я к вам с довольно таки нубским вопросом, но ни как не решаемым моими силами.
Есть функция, формирующая из данных базы <option> и вставляющая ИХ в <select>.
Сам <select> находится в диалогом окне. При запуске диалогового окна, запускается эта функция и формирует <option>.
Диалоговое окно создано для создания и редактирования определённого ОБЪЕКТА, то есть окно не закрывается после действия с ним, но обновляется страница (что бы отобразить изменения). И тут наступает проблема: Диалоговое окно вновь запускает эту функцию и наполняется очередной порцией абсолютно таких же <option> (то есть было три, а стало шесть, по два одинаковых).

Помогите оградиться от самооплодотворения <option> или наведите на мысль.
Заранее благодарю всех тех, кто откликнется!





function select_group() {
    var vr_url = cam_control+"/cgi-bin/admin.pl?m=selectgroup";
    return $.ajax({
	type: 'GET',
	dataType: 'json',
	cache: false,
	url: vr_url,
	success: function(data){
            if(data.error != undefined) {
                if(undefined != err_lang[data.error]) {
                    alert('Ошибка: '+err_lang[data.error]);
                }else{
                    alert('Возникла неизвестная ошибка, попробуйте позже. ('+data.error+')');
                }
            } else {                   
    for(var selgr in data)
            {$("#selusers")
							.append('<option value="' + data[selgr].user_id + '">' + data[selgr].user_login + '</option>');}  
            }
        }
    });
}
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2013, 14:13
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

С этим кодом все в порядке. Он ничего не плодит.
Нужно больше кода!
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2013, 14:31
Интересующийся
Отправить личное сообщение для Jopses Посмотреть профиль Найти все сообщения от Jopses
 
Регистрация: 05.02.2013
Сообщений: 20

Я не спорю , что всё впорядке. Просто мне нужно "for" оградить от повторного запроса, что бы он выполнялся один раз. И если диалоговое окно опять обращается к этой функции, то проверить А не наполнен ли <select> или что то в этом роде. Я могу предоставить весь код полностью, но стоит ли, если ограждение требуется здесь))
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2013, 15:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не вызывайте функцию select_group повторно, вот и все.
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2013, 15:09
Интересующийся
Отправить личное сообщение для Jopses Посмотреть профиль Найти все сообщения от Jopses
 
Регистрация: 05.02.2013
Сообщений: 20

Так она автоматически вызывается при запуске (обновлении) диалогового окна. Тут иначе ни куда. Либо пал, либо пропал!))
Ответить с цитированием
  #6 (permalink)  
Старый 14.02.2013, 15:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Создайте переменную чуть выше объявления этой функции.
var myFlag = false;
function select_group() {
    if (myFlag) return;
    myFlag = true;
    ...
Ответить с цитированием
  #7 (permalink)  
Старый 14.02.2013, 15:41
Интересующийся
Отправить личное сообщение для Jopses Посмотреть профиль Найти все сообщения от Jopses
 
Регистрация: 05.02.2013
Сообщений: 20

Спасибо большое! Попробую
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элемент <option> в PHP kilogram Серверные языки и технологии 8 30.03.2012 11:08
Криво работает <option>, созданный находу... myaso Events/DOM/Window 1 26.07.2011 09:58
ondragstart, oncontextmenu события для тэга <option> anlov Internet Explorer 1 28.06.2011 18:05
Не срабатывают события на элементе <option> DreamTheater Events/DOM/Window 2 14.06.2011 20:24
IE+JS вытащить <option> из списка Rojas Общие вопросы Javascript 1 26.05.2011 16:32