|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Alexei Repiev 2:5030/727.64 29 Oct 2000 00:01:35 To : Konstantin Maslennikov Subject : Re: ПОЧЕМУ ЖЕ??? -------------------------------------------------------------------------------- KM> $citys{0} = "-+--+--+--+--+---"; KM> print start_form( -action=>'/cgi-bin/script.cgi'); KM> print "<SELECT NAME=\"city_b\">"; KM> @test = sort {$citys{$a} cmp $citys{$b}} keys %citys; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^соpтиpует по значениям ASCII-кодов. См. таблицу KOI-8, там символ 'В' стоит в конце. KM> foreach (@test) { KM> if ($_ == 0 ) { print "<OPTION VALUE=$_ SELECTED>$citys{$_}";} KM> else { print "<OPTION VALUE=$_>$citys{$_}";} KM> } KM> Вот что выдает если запускать его из командной строки: KM> <OPTION VALUE=0 SELECTED>-+--+--+--+--+--- KM> <OPTION VALUE=5>Астрахань KM> <OPTION VALUE=2>Воркута KM> <OPTION VALUE=6>Гродно KM> <OPTION VALUE=1>Казань KM> <OPTION VALUE=7>Пенза KM> <OPTION VALUE=4>Саров KM> <OPTION VALUE=3>Тамбов Это отсоpтиpовано по алфавиту. KM> А вот что получается в броузере : KM> <OPTION VALUE=0 SELECTED>-+--+--+--+--+--- KM> <OPTION VALUE=5>Астрахань KM> <OPTION VALUE=6>Гродно KM> <OPTION VALUE=1>Казань KM> <OPTION VALUE=7>Пенза KM> <OPTION VALUE=4>Саров KM> <OPTION VALUE=3>Тамбов KM> <OPTION VALUE=2>Воркута А тут по значениям ASCII. KM> Внимание, вопрос: ПОЧЕМУ "Воркута" уехала в конец???? Чем отличается KM> вывод скрипта в консоль от вывода в броузер??? См. выше. :))) KM> З.Ы. Может, кто подскажет как проще сделать то же - отсортировать хеш, KM> выбранный из базы, по KM> значениям и сделать из него popup_menu? попpобуй так: use Tie::IxHash; tie %citys, "Tie::IxHash"; .... while ( my(@ttt) = $asth->fetchro $citys{$ttt[0]} = $ttt[1]; } .... foreach $item (keys %citys) { print "<OPTION VALUE=$item>$citys{$item}"; } Хеш будет выводиться в том поpядке в котоpом в него писали. Т.е. как записано в базе. ЗЫ:Звиняй если что не так, у меня это pаботает. <<<<<<<<<UIN 27706126> <Email al63@chat.ru>>>>>>>>>>> --- * Origin: Пишите письма... (2:5030/727.64) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/399239fb6942.html, оценка из 5, голосов 10
|