FAQ
Edit report at http://pear.php.net/bugs/bug.php?id=16603&edit=1

ID: 16603
Updated by: borz_off@cs.msu.su
Reported By: michael at stellarent dot com
Summary: Hierselect element options order broken in Google
Chrome
Status: Analyzed
Type: Bug
Package: HTML_QuickForm
Operating System: Fedora
Package Version: 3.2.11
PHP Version: Irrelevant
Roadmap Versions:
New Comment:

NB: committed an implementation of Hierselect element for QuickForm2,
this bug is fixed there. Now we just have to backport the fixes...


Previous Comments:
------------------------------------------------------------------------

[2009-09-14 13:14:28] mpgjunky

Alexey,

Thanks for the explanation, good to know.

Regards,
Michael.

------------------------------------------------------------------------

[2009-09-14 13:09:36] avb

-Status: Verified
+Status: Analyzed
Looks like Chrome can iterate over object's properties with 'for in'
loop in a random order. Also looks like that this behaviour conforms to
Javascript spec, but not to the behaviour of other major browsers...

We probably need to rewrite some of the JS code for hierselect, getting
rid of 'for in' loop.

References:
http://ejohn.org/blog/javascript-in-chrome/
http://stackoverflow.com/questions/640745/google-chrome-javascript-associative-arrays-evaluated-out-of-sequence

------------------------------------------------------------------------

[2009-09-12 19:51:36] avb

-Status: Feedback
+Status: Verified
Thanks, reproduced the problem.

------------------------------------------------------------------------

[2009-09-12 19:19:54] mpgjunky

Alexey,

When running the example, Alaska cities will show in correct order,
whilst California cities will show unordered.

Thanks,
Michael.

------------------------------------------------------------------------

[2009-09-12 19:17:00] mpgjunky

Dear Alexey,

As requested, an example. I can send you screenshots as if you wish, in
FF and
Chrome.

Thanks,
Michael.

<?php
require_once 'HTML/QuickForm.php';
$form = new HTML_QuickForm('frmcaddrrep', "get");

$states[0] = "Alaska";
$states[1] = "California";

$cities[0][104]="Anchorage";
$cities[0][105]="Barrow";
$cities[0][106]="Bethel";
$cities[0][107]="Cordova";
$cities[0][108]="Dillingham";
$cities[0][109]="Eagle River";
$cities[0][110]="Fairbanks";
$cities[0][111]="Fort Wainwright";
$cities[0][112]="Haines";
$cities[0][113]="Homer";
$cities[0][114]="Juneau";
$cities[0][115]="Kenai";
$cities[0][116]="Ketchikan";
$cities[0][117]="Kodiak";
$cities[0][118]="Kotzebue";
$cities[0][119]="Nome";
$cities[0][120]="North Pole";
$cities[0][121]="Palmer";
$cities[0][122]="Petersburg";
$cities[0][123]="Seward";
$cities[0][124]="Sitka";
$cities[0][125]="Skagway";
$cities[0][126]="Soldotna";
$cities[0][127]="Unalaska";
$cities[0][128]="Valdez";
$cities[0][129]="Wasilla";
$cities[0][130]="Wrangell";

$cities[1][277]="Agoura Hills";
$cities[1][278]="Alameda";
$cities[1][279]="Alamo";
$cities[1][280]="Albany";
$cities[1][281]="Alhambra";
$cities[1][282]="Aliso Viejo";
$cities[1][283]="Alpine";
$cities[1][284]="Altadena";
$cities[1][285]="Alturas";
$cities[1][286]="Anaheim";
$cities[1][287]="Anderson";
$cities[1][288]="Angels Camp";
$cities[1][289]="Antioch";
$cities[1][290]="Apple Valley";
$cities[1][291]="Aptos";
$cities[1][292]="Arcadia";
$cities[1][293]="Arcata";
$cities[1][294]="Arnold";
$cities[1][295]="Arroyo Grande";
$cities[1][296]="Artesia";
$cities[1][297]="Atascadero";
$cities[1][298]="Atwater";
$cities[1][299]="Auburn";
$cities[1][300]="Avalon";
$cities[1][301]="Azusa";
$cities[1][302]="Bakersfield";
$cities[1][303]="Baldwin Park";
$cities[1][304]="Banning";
$cities[1][305]="Barstow";
$cities[1][306]="Beaumont";
$cities[1][307]="Bell";
$cities[1][308]="Bell Gardens";
$cities[1][309]="Bellflower";
$cities[1][310]="Belmont";
$cities[1][311]="Belvedere Tiburon";
$cities[1][312]="Benicia";
$cities[1][313]="Berkeley";
$cities[1][314]="Beverly Hills";
$cities[1][315]="Big Bear City";
$cities[1][316]="Big Bear Lake";
$cities[1][317]="Bishop";
$cities[1][318]="Bloomington";
$cities[1][319]="Blythe";
$cities[1][320]="Bonita";
$cities[1][321]="Boulder Creek";
$cities[1][322]="Brawley";
$cities[1][323]="Brea";
$cities[1][324]="Brentwood";
$cities[1][325]="Brisbane";
$cities[1][326]="Buellton";
$cities[1][327]="Buena Park";
$cities[1][328]="Burbank";
$cities[1][329]="Burlingame";
$cities[1][330]="Calabasas";
$cities[1][331]="Calexico";
$cities[1][332]="Calistoga";
$cities[1][333]="Camarillo";
$cities[1][334]="Cambria";
$cities[1][335]="Campbell";
$cities[1][336]="Canoga Park";
$cities[1][337]="Canyon Country";
$cities[1][338]="Capitola";
$cities[1][339]="Carlsbad";
$cities[1][340]="Carmel";
$cities[1][341]="Carmel Valley";
$cities[1][342]="Carmichael";
$cities[1][343]="Carpinteria";
$cities[1][344]="Carson";
$cities[1][345]="Castro Valley";
$cities[1][346]="Castroville";
$cities[1][347]="Cathedral City";
$cities[1][348]="Ceres";
$cities[1][349]="Cerritos";
$cities[1][350]="Chatsworth";
$cities[1][351]="Chester";
$cities[1][352]="Chico";
$cities[1][353]="Chino";
$cities[1][354]="Chino Hills";
$cities[1][355]="Chowchilla";
$cities[1][356]="Chula Vista";
$cities[1][357]="Citrus Heights";
$cities[1][358]="City of Industry";
$cities[1][359]="Claremont";
$cities[1][360]="Clayton";
$cities[1][361]="Clearlake";
$cities[1][362]="Cloverdale";
$cities[1][363]="Clovis";
$cities[1][364]="Coachella";
$cities[1][365]="Coalinga";
$cities[1][366]="Colton";
$cities[1][367]="Colusa";
$cities[1][368]="Compton";
$cities[1][369]="Concord";
$cities[1][370]="Corning";
$cities[1][371]="Corona";
$cities[1][372]="Corona Del Mar";
$cities[1][373]="Coronado";
$cities[1][374]="Corte Madera";
$cities[1][375]="Costa Mesa";
$cities[1][376]="Cotati";
$cities[1][377]="Cottonwood";
$cities[1][378]="Covina";
$cities[1][379]="Crescent City";
$cities[1][380]="Crestline";
$cities[1][381]="Culver City";
$cities[1][382]="Cupertino";
$cities[1][383]="Cypress";
$cities[1][384]="Daly City";
$cities[1][385]="Dana Point";
$cities[1][386]="Danville";
$cities[1][387]="Davis";
$cities[1][388]="Del Mar";
$cities[1][389]="Delano";
$cities[1][390]="Desert Hot Springs";
$cities[1][391]="Diamond Bar";
$cities[1][392]="Dinuba";
$cities[1][393]="Dixon";
$cities[1][394]="Downey";
$cities[1][395]="Duarte";
$cities[1][396]="Dublin";
$cities[1][397]="El Cajon";
$cities[1][398]="El Centro";
$cities[1][399]="El Cerrito";
$cities[1][400]="El Dorado Hills";
$cities[1][401]="El Monte";
$cities[1][402]="El Segundo";
$cities[1][403]="El Sobrante";
$cities[1][404]="Elk Grove";
$cities[1][405]="Emeryville";
$cities[1][406]="Encinitas";
$cities[1][407]="Encino";
$cities[1][408]="Escalon";
$cities[1][409]="Escondido";
$cities[1][410]="Eureka";
$cities[1][411]="Exeter";
$cities[1][412]="Fair Oaks";
$cities[1][413]="Fairfax";
$cities[1][414]="Fairfield";
$cities[1][415]="Fallbrook";
$cities[1][416]="Felton";
$cities[1][417]="Fillmore";
$cities[1][418]="Folsom";
$cities[1][419]="Fontana";
$cities[1][420]="Fort Bragg";
$cities[1][421]="Fortuna";
$cities[1][422]="Fountain Valley";
$cities[1][423]="Fremont";
$cities[1][424]="Fresno";
$cities[1][425]="Fullerton";
$cities[1][426]="Galt";
$cities[1][427]="Garden Grove";
$cities[1][428]="Gardena";
$cities[1][429]="Gilroy";
$cities[1][430]="Glendale";
$cities[1][431]="Glendora";
$cities[1][432]="Goleta";
$cities[1][433]="Granada Hills";
$cities[1][434]="Grand Terrace";
$cities[1][435]="Granite Bay";
$cities[1][436]="Grass Valley";
$cities[1][437]="Greenbrae";
$cities[1][438]="Gridley";
$cities[1][439]="Grover Beach";
$cities[1][440]="Hacienda Heights";
$cities[1][441]="Half Moon Bay";
$cities[1][442]="Hanford";
$cities[1][443]="Harbor City";
$cities[1][444]="Hawaiian Gardens";
$cities[1][445]="Hawthorne";
$cities[1][446]="Hayward";
$cities[1][447]="Healdsburg";
$cities[1][448]="Hemet";
$cities[1][449]="Hermosa Beach";
$cities[1][450]="Hesperia";
$cities[1][451]="Highland";
$cities[1][452]="Hollister";
$cities[1][453]="Huntington Beach";
$cities[1][454]="Huntington Park";
$cities[1][455]="Imperial Beach";
$cities[1][456]="Indio";
$cities[1][457]="Inglewood";
$cities[1][458]="Irvine";
$cities[1][459]="Jackson";
$cities[1][460]="Kelseyville";
$cities[1][461]="Kerman";
$cities[1][462]="King City";
$cities[1][463]="Kings Beach";
$cities[1][464]="Kingsburg";
$cities[1][465]="La Canada Flintridge";
$cities[1][466]="La Crescenta";
$cities[1][467]="La Habra";
$cities[1][468]="La Jolla";
$cities[1][469]="La Mesa";
$cities[1][470]="La Mirada";
$cities[1][471]="La Palma";
$cities[1][472]="La Puente";
$cities[1][473]="La Quinta";
$cities[1][474]="La Verne";
$cities[1][475]="Lafayette";
$cities[1][476]="Laguna Beach";
$cities[1][477]="Laguna Hills";
$cities[1][478]="Laguna Niguel";
$cities[1][479]="Lake Arrowhead";
$cities[1][480]="Lake Elsinore";
$cities[1][481]="Lake Forest";
$cities[1][482]="Lake Isabella";
$cities[1][483]="Lakeport";
$cities[1][484]="Lakeside";
$cities[1][485]="Lakewood";
$cities[1][486]="Lancaster";
$cities[1][487]="Larkspur";
$cities[1][488]="Lawndale";
$cities[1][489]="Lemon Grove";
$cities[1][490]="Lemoore";
$cities[1][491]="Lincoln";
$cities[1][492]="Lindsay";
$cities[1][493]="Livermore";
$cities[1][494]="Lodi";
$cities[1][495]="Loma Linda";
$cities[1][496]="Lomita";
$cities[1][497]="Lompoc";
$cities[1][498]="Long Beach";
$cities[1][499]="Loomis";
$cities[1][500]="Los Alamitos";
$cities[1][501]="Los Altos";
$cities[1][502]="Los Angeles";
$cities[1][503]="Los Banos";
$cities[1][504]="Los Gatos";
$cities[1][505]="Los Osos";
$cities[1][506]="Lower Lake";
$cities[1][507]="Lynwood";
$cities[1][508]="Madera";
$cities[1][509]="Malibu";
$cities[1][510]="Mammoth Lakes";
$cities[1][511]="Manhattan Beach";
$cities[1][512]="Manteca";
$cities[1][513]="Marina";
$cities[1][514]="Marina Del Rey";
$cities[1][515]="Mariposa";
$cities[1][516]="Martinez";
$cities[1][517]="Marysville";
$cities[1][518]="Maywood";
$cities[1][519]="McKinleyville";
$cities[1][520]="Mendocino";
$cities[1][521]="Menlo Park";
$cities[1][522]="Merced";
$cities[1][523]="Middletown";
$cities[1][524]="Mill Valley";
$cities[1][525]="Millbrae";
$cities[1][526]="Milpitas";
$cities[1][527]="Mira Loma";
$cities[1][528]="Mission Hills";
$cities[1][529]="Mission Viejo";
$cities[1][530]="Modesto";
$cities[1][531]="Monrovia";
$cities[1][532]="Montclair";
$cities[1][533]="Montebello";
$cities[1][534]="Monterey";
$cities[1][535]="Monterey Park";
$cities[1][536]="Montrose";
$cities[1][537]="Moorpark";
$cities[1][538]="Moraga";
$cities[1][539]="Moreno Valley";
$cities[1][540]="Morgan Hill";
$cities[1][541]="Morro Bay";
$cities[1][542]="Mount Shasta";
$cities[1][543]="Mountain View";
$cities[1][544]="Murrieta";
$cities[1][545]="Napa";
$cities[1][546]="National City";
$cities[1][547]="Needles";
$cities[1][548]="Nevada City";
$cities[1][549]="Newark";
$cities[1][550]="Newbury Park";
$cities[1][551]="Newhall";
$cities[1][552]="Newport Beach";
$cities[1][553]="Nipomo";
$cities[1][554]="Norco";
$cities[1][555]="North Highlands";
$cities[1][556]="North Hills";
$cities[1][557]="North Hollywood";
$cities[1][558]="Northridge";
$cities[1][559]="Norwalk";
$cities[1][560]="Novato";
$cities[1][561]="Oakdale";
$cities[1][562]="Oakhurst";
$cities[1][563]="Oakland";
$cities[1][564]="Oakley";
$cities[1][565]="Oceanside";
$cities[1][566]="Ojai";
$cities[1][567]="Ontario";
$cities[1][568]="Orange";
$cities[1][569]="Orangevale";
$cities[1][570]="Orinda";
$cities[1][571]="Orland";
$cities[1][572]="Oroville";
$cities[1][6264]="Other";
$cities[1][573]="Oxnard";
$cities[1][574]="Pacific Grove";
$cities[1][575]="Pacific Palisades";
$cities[1][576]="Pacifica";
$cities[1][577]="Pacoima";
$cities[1][578]="Palm Desert";
$cities[1][579]="Palm Springs";
$cities[1][580]="Palmdale";
$cities[1][581]="Palo Alto";
$cities[1][582]="Palos Verdes Peninsu";
$cities[1][583]="Panorama City";
$cities[1][584]="Paradise";
$cities[1][585]="Paramount";
$cities[1][586]="Pasadena";
$cities[1][587]="Paso Robles";
$cities[1][588]="Patterson";
$cities[1][589]="Penn Valley";
$cities[1][590]="Perris";
$cities[1][591]="Petaluma";
$cities[1][592]="Pico Rivera";
$cities[1][593]="Pinole";
$cities[1][594]="Pismo Beach";
$cities[1][595]="Pittsburg";
$cities[1][596]="Placentia";
$cities[1][597]="Placerville";
$cities[1][598]="Playa Del Rey";
$cities[1][599]="Pleasant Hill";
$cities[1][600]="Pleasanton";
$cities[1][601]="Pomona";
$cities[1][602]="Port Hueneme";
$cities[1][603]="Porterville";
$cities[1][604]="Poway";
$cities[1][605]="Quincy";
$cities[1][606]="Ramona";
$cities[1][607]="Rancho Cordova";
$cities[1][608]="Rancho Cucamonga";
$cities[1][609]="Rancho Mirage";
$cities[1][610]="Rancho Palos Verdes";
$cities[1][611]="Rancho Santa Fe";
$cities[1][612]="Rancho Santa Margari";
$cities[1][613]="Red Bluff";
$cities[1][614]="Redding";
$cities[1][615]="Redlands";
$cities[1][616]="Redondo Beach";
$cities[1][617]="Redwood City";
$cities[1][618]="Reedley";
$cities[1][619]="Reseda";
$cities[1][620]="Rialto";
$cities[1][621]="Richmond";
$cities[1][622]="Ridgecrest";
$cities[1][623]="Rio Linda";
$cities[1][624]="Rio Vista";
$cities[1][625]="Ripon";
$cities[1][626]="Riverbank";
$cities[1][627]="Riverside";
$cities[1][628]="Rocklin";
$cities[1][629]="Rohnert Park";
$cities[1][630]="Rosemead";
$cities[1][631]="Roseville";
$cities[1][632]="Rowland Heights";
$cities[1][633]="Running Springs";
$cities[1][634]="Sacramento";
$cities[1][635]="Saint Helena";
$cities[1][636]="Salinas";
$cities[1][637]="San Andreas";
$cities[1][638]="San Anselmo";
$cities[1][639]="San Bernardino";
$cities[1][640]="San Bruno";
$cities[1][641]="San Carlos";
$cities[1][642]="San Clemente";
$cities[1][643]="San Diego";
$cities[1][644]="San Dimas";
$cities[1][645]="San Fernando";
$cities[1][646]="San Francisco";
$cities[1][647]="San Gabriel";
$cities[1][648]="San Jacinto";
$cities[1][649]="San Jose";
$cities[1][650]="San Juan Capistrano";
$cities[1][651]="San Leandro";
$cities[1][652]="San Lorenzo";
$cities[1][653]="San Luis Obispo";
$cities[1][654]="San Marcos";
$cities[1][655]="San Marino";
$cities[1][656]="San Mateo";
$cities[1][657]="San Pablo";
$cities[1][658]="San Pedro";
$cities[1][659]="San Rafael";
$cities[1][660]="San Ramon";
$cities[1][661]="Sanger";
$cities[1][662]="Santa Ana";
$cities[1][663]="Santa Barbara";
$cities[1][664]="Santa Clara";
$cities[1][665]="Santa Clarita";
$cities[1][666]="Santa Cruz";
$cities[1][667]="Santa Fe Springs";
$cities[1][668]="Santa Maria";
$cities[1][669]="Santa Monica";
$cities[1][670]="Santa Paula";
$cities[1][671]="Santa Rosa";
$cities[1][672]="Santa Ynez";
$cities[1][673]="Santee";
$cities[1][674]="Saratoga";
$cities[1][675]="Sausalito";
$cities[1][676]="Scotts Valley";
$cities[1][677]="Seal Beach";
$cities[1][678]="Seaside";
$cities[1][679]="Sebastopol";
$cities[1][680]="Selma";
$cities[1][681]="Shafter";
$cities[1][682]="Sherman Oaks";
$cities[1][683]="Shingle Springs";
$cities[1][684]="Sierra Madre";
$cities[1][685]="Simi Valley";
$cities[1][686]="Solana Beach";
$cities[1][687]="Solvang";
$cities[1][688]="Sonoma";
$cities[1][689]="Sonora";
$cities[1][690]="Soquel";
$cities[1][691]="South El Monte";
$cities[1][692]="South Gate";
$cities[1][693]="South Lake Tahoe";
$cities[1][694]="South Pasadena";
$cities[1][695]="South San Francisco";
$cities[1][696]="Spring Valley";
$cities[1][697]="Stanton";
$cities[1][698]="Stockton";
$cities[1][699]="Studio City";
$cities[1][700]="Suisun City";
$cities[1][701]="Sun City";
$cities[1][702]="Sun Valley";
$cities[1][703]="Sunland";
$cities[1][704]="Sunnyvale";
$cities[1][705]="Susanville";
$cities[1][706]="Sutter Creek";
$cities[1][707]="Sylmar";
$cities[1][708]="Taft";
$cities[1][709]="Tahoe City";
$cities[1][710]="Tarzana";
$cities[1][711]="Tehachapi";
$cities[1][712]="Temecula";
$cities[1][713]="Temple City";
$cities[1][714]="Templeton";
$cities[1][715]="Thousand Oaks";
$cities[1][716]="Torrance";
$cities[1][717]="Trabuco Canyon";
$cities[1][718]="Tracy";
$cities[1][719]="Truckee";
$cities[1][720]="Tujunga";
$cities[1][721]="Tulare";
$cities[1][722]="Turlock";
$cities[1][723]="Tustin";
$cities[1][724]="Twentynine Palms";
$cities[1][725]="Ukiah";
$cities[1][726]="Union City";
$cities[1][727]="Upland";
$cities[1][728]="Vacaville";
$cities[1][729]="Valencia";
$cities[1][730]="Vallejo";
$cities[1][731]="Valley Center";
$cities[1][732]="Valley Springs";
$cities[1][733]="Valley Village";
$cities[1][734]="Van Nuys";
$cities[1][735]="Venice";
$cities[1][736]="Ventura";
$cities[1][737]="Victorville";
$cities[1][738]="Visalia";
$cities[1][739]="Vista";
$cities[1][740]="Walnut";
$cities[1][741]="Walnut Creek";
$cities[1][742]="Wasco";
$cities[1][743]="Watsonville";
$cities[1][744]="Weaverville";
$cities[1][745]="Weed";
$cities[1][746]="West Covina";
$cities[1][747]="West Hills";
$cities[1][748]="West Hollywood";
$cities[1][749]="West Sacramento";
$cities[1][750]="Westlake Village";
$cities[1][751]="Westminster";
$cities[1][752]="Whittier";
$cities[1][753]="Wildomar";
$cities[1][754]="Willits";
$cities[1][755]="Willows";
$cities[1][756]="Wilmington";
$cities[1][757]="Windsor";
$cities[1][758]="Woodland";
$cities[1][759]="Woodland Hills";
$cities[1][760]="Yorba Linda";
$cities[1][761]="Yountville";
$cities[1][762]="Yreka";
$cities[1][763]="Yuba City";
$cities[1][764]="Yucaipa";
$cities[1][765]="Yucca Valley";

$sel =& $form->addElement('hierselect', 'statecity', 'Choose
State/City:');
$sel->setOptions(array($states, $cities));

$form->display();

?>

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://pear.php.net/bugs/bug.php?id=16603

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppear-bugs @
categoriesphp
postedSep 22, '10 at 7:57p
activeSep 22, '10 at 7:57p
posts1
users1
websitepear.php.net

1 user in discussion

Borz_off: 1 post

People

Translate

site design / logo © 2022 Grokbase