郵便番号の地域に関連するブログを検索する
はじめに、検索フォームで入力した郵便番号から 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