🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #50829

jquery UI autocomplete

#50829
From: adamrw
Date: Mon, 18 Jul 2011 17:41
48 lines
3537 bytes
Witam
Tworzę formularz w którym kolejno wpisywane pola będą miały funkcję
autouzupełniania. Dodatkowo dostępne wartości następnego pola będą
zależne od wybranej wartości poprzedniego pola. Przykładowo mamy kraje
i miasta. Po wybraniu kraju w polu miast będą podpowiadane tylko te
miasta które należą do wybranego kraju.
Przygotowałem sobie formularz który zawiera następujące pola:
<input type="text" id="country"  name="country" /><input type=hidden"
id="country_id" name="country_id" />
<input type="text" id="city"  name="city" /><input type=hidden"
id="city_id" name="city_id" />
oczywiście pola country_id i city_id są dla wygody, by łatwiej było
odebrać dane.
Do obsługi tego napisałem następujący skrypcik:
var city_parent_id;
        $(function() {
            $("#country").autocomplete({
                source: "getData.php?type=country",
                select: function(event, ui) {
                    $('#country_id').val(ui.item.id);
                }
            });
            $("#city").autocomplete({
                source: "getData.php?
type=city&parent_id="+city_parent_id+"",
                select: function(event, ui) {
                    $('#city_id').val(ui.item.id);
                }
            });
            $("#country").focusout(function(){
                city_parent_id = $('#country_id').val();
                $("#info").html(city_parent_id);
            });
        });
Problem jest taki, że nie wiem czemu ale do skryptu getData.php
podczas wyboru miasta jest przesyłany parent_id=undefined . Co ciekawe
podczas wyjścia z pola country w bloku #info pojawia się poprawna
wartość city_parent_id, więc jest ona na pewno najpierw ustawiana a
potem wykonuje się autocomplete od #city, ale ten już nie widzi nowej
wartości city_parent_id. Podpowiedzcie proszę co robię źle.
Poza tym to city_parent_id zrobiłem jako obejście bo najpierw myślałem
że zamiast
source: "getData.php?type=city&parent_id="+city_parent_id+"",
lepiej było by
source: "getData.php?type=city&parent_id="+$('#country_id').val()+"",
ale ponieważ nie działało zacząłem kombinować ze zmienną.

Pozdrawiam
Technical Details
Message-ID: <e201be75-a248-421a-91e2-76c5edb8cb9d@a11g2000yqm.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.uni-stuttgart.de!news.belwue.de!news-zh.switch.ch!switch.ch!border3.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!feeder.news-service.com!postnews.google.com!a11g2000yqm.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.uni-stuttgart.de!news.belwue.de!news-zh.switch.ch!switch.ch!border3.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!feeder.news-service.com!postnews.google.com!a11g2000yqm.googlegroups.com!not-for-mail
From: adamrw <adam.warnowski@gmail.com>
Newsgroups: pl.comp.lang.javascript
Subject: jquery UI autocomplete
Date: Mon, 18 Jul 2011 10:41:14 -0700 (PDT)
Organization: http://groups.google.com
Lines: 53
Message-ID: <e201be75-a248-421a-91e2-76c5edb8cb9d@a11g2000yqm.googlegroups.com>
NNTP-Posting-Host: 77.237.12.233
Mime-Version: 1.0
X-Trace: posting.google.com 1311012485 20491 127.0.0.1 (18 Jul 2011 18:08:05 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Mon, 18 Jul 2011 18:08:05 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: a11g2000yqm.googlegroups.com; posting-host=77.237.12.233; posting-account=WO9VQwoAAAC7MLNKjZPkqXxXLYiM-gFv
User-Agent: G2/1.0
X-Google-Web-Client: true
X-Google-Header-Order: HNKRUAELSC
X-HTTP-UserAgent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit