Article View: pl.comp.lang.javascript
Article #50829jquery UI autocomplete
From: adamrw
Date: Mon, 18 Jul 2011 17:41
Date: Mon, 18 Jul 2011 17:41
48 lines
3537 bytes
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-mailShow 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