один запрос ajax

 
0
 
JavaScript
ava
Master_ | 02.08.2007, 00:09
Вобщем есть у меня страничка на аякс. При нажатии на страну с помощью аякса появляются города этой страны. Так вот, можно нажимать на ссылку сколь угодно раз, и все время появляются одни и те же города, а мне нуэно ограничить запрос до одного, нажал на страну - открылся список, остальные5 нажатия на ссылку блокируются.
Как ограничить JS запрос на один раз?
Comments (8)
ava
Astraller | 02.08.2007, 12:25 #
Сделайте себе глобальную переменную - флаг. Например:

var flag=0;
...
function sendRequest (){
if (flag==0){
flag=1;
...
}
}
ava
lexxICON | 02.08.2007, 13:14 #
Или косвенно проверять - наличие текста в поле городов или тп
ava
Master_ | 03.08.2007, 09:43 #
К сожалению с флагом думаю не получится..
Потому что если делать так как написано во втором посте, можно будет открыть города только одной страны. Тоесть у меня в функцию передается id страны, по которому должны открываться города.
Так вот, открыть любую страну - и флаг будет равным одному, тоесть у всех остальных стран города открыть не получится.

Как бы решить это?
ava
Mymik | 03.08.2007, 10:34 #
Master_, флаг не обязательно должен быть нулем или единицей... это может быть код этой страны или города...
ava
Master_ | 03.08.2007, 10:37 #
А что хорошего если то код страны?

Ведь можно будет выбрать другую страну, соответственно id флага сменится, и предыдущий открытый id можно будет открыть вновь..
ava
Master_ | 03.08.2007, 12:04 #
Написал в коде это

$flag = array();
$flag[] = $id;
if ( in_array($flag, $id) )
{
exit();
}

Но это неправильно...
Это в ф-ии, вызываемой яваскриптом.
ava
Mymik | 04.08.2007, 09:03 #
Цитата (Master_ @ 3.8.2007, 09:43 findReferencedText)
Потому что если делать так как написано во втором посте, можно будет открыть города только одной страны. Тоесть у меня в функцию передается id страны, по которому должны открываться города.

Вроде бы это твои слова. Следовательно, если ты запомнишь код передаваемой страны в этот флаг и будешь проверять, то ты избежишь повторных загрузок.
Т.е. приходит код страны 111 ты проверил что находится во флаге, если такое же число, то делаешь return; иначе записываешь новый код страницы и отправляешь AJAX запрос для загрузки городов.
Или у тебя коллизии в СУБД ??? список городов для разных стран идут под одним номером ???

Цитата (Master_ @ 3.8.2007, 10:37 findReferencedText)
Ведь можно будет выбрать другую страну, соответственно id флага сменится, и предыдущий открытый id можно будет открыть вновь..
Это уже совсем другой вопрос и ты не оговаривал его в первом посте.
Тогда забей на флаг вообще, он тебе не понадобиться,- тебе нужен будет какой-нибудь массив типа JSON (если ты принимаешь данные в этом виде, так вообще сказка). Дальше ты просто пробегаешься по этому массиву и выцепляешь данные нужные тебе. Но, ИМХО лишний геморой...
ava
Master_ | 04.08.2007, 10:13 #
Проверку есть ли код во флаге - я пробовал написать код, но не получалось, может приведешь пример? smile
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit