郵便番号の地域に関連するブログを検索する
はじめに、検索フォームで入力した郵便番号から Postal.Lookup クラス を使って住所を検索します。
続けて、BLOGRANGER API の Ranger.BlogSearch クラス を使ってブログを検索して、その結果をリスト表示します。このとき、検索条件を郵便番号と住所の単語の OR 条件として、郵便番号の地域に関連するブログを絞り込んでいます。
<script type="text/javascript">
//<![CDATA[
var getblogs = new Ranger.BlogSearch();
getblogs.successHandler(ongetblogs);
getblogs.startHandler(function(activeCount) {
if (activeCount==0)
Element.show('indicator');
});
getblogs.endHandler(function(activeCount) {
if (activeCount==0)
Element.hide('indicator');
});
// run
function run(c) {
var lookup = new Postal.Lookup();
lookup.onload = function() {
var keyword = c;
for (var i=0; i<lookup.response.length; i++) {
var addr = lookup.response[i];
var a = addr.a.split(' ');
a = a.slice(1);
a = a.join('');
keyword += '(' + a + ')';
}
getblogs.needsTitle();
getblogs.needsBlog();
getblogs.needsBody(80, keyword);
getblogs.needsDate();
getblogs.searchByKeyword(keyword, 1, 10);
};
lookup.send(c);
}
// ongetblogs
function ongetblogs(result) {
if (result.totalResults==0)
return $('blogs').innerHTML =
'関連するブログは見つかりませんでした。';
$('blogs').innerHTML = '';
$('blogs').appendChild(result.results.inject(
document.createElement('ol'), function(ol, v) {
var a = document.createElement('a');
a.href = v.url;
a.appendChild(document.createTextNode(v.title));
var entry = document.createElement('div');
entry.className = 'entry';
entry.appendChild(a);
var a = document.createElement('a');
a.href = v.blogurl;
a.appendChild(document.createTextNode(v.blogname));
var blog = document.createElement('div');
blog.className = 'blog';
blog.appendChild(a);
var body = document.createElement('div');
body.className = 'body';
body.innerHTML = v.body;
var date = new Date();
date.setTime(v.date*1000);
date = date.toLocaleString();
var rel = document.createElement('div');
rel.className = 'rel';
rel.appendChild(document.createTextNode(date));
var li = document.createElement('li');
li.appendChild(entry);
li.appendChild(blog);
li.appendChild(body);
li.appendChild(rel);
ol.appendChild(li);
return ol;
}));
}
//]]>
</script>
<!--BLOGRANGER-->
<div id="ranger-promote">
<a title="by BLOGRANGER"
href="http://ranger.labs.goo.ne.jp/" target="_blank">
<img style="border: 0;" alt="by BLOGRANGER"
src="http://ranger.labs.goo.ne.jp/rpc/image/promote.gif" /></a>
</div>
<!--/BLOGRANGER-->
<form name="f" onsubmit="run(this.c.value); return false;">
<input type="text" name="c" value="160-0021" size="20" />
<input type="submit" name="g" value="検索" />
</form>
<div id="indicator" style="display:none;"></div>
<div id="blogs"></div>
関連情報
- ベーシック
- 送信フォーム
- with jQuery
- Google Maps API
- BLOGRANGER API

