- ベストアンサー
Ajaxで住所検索
Ajaxで郵便番号から住所検索をする機能を作成したのですが 郵便番号529であいまい検索して結果が表示されたあと 再度ほかの郵便番号413で検索しようとしたところ529の結果が表示されてしまいます。 このようのときの解決法を教えてください。 よろしくお願いいたします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 Firebugなんかを利用してリクエスト内容とレスポンス内容等を確認してみてください。 実際に意図した値が送信されているのか、php側での受け取り内容は意図している値なのか。 それによって返ってくるレスポンスについても意図したものであるのか。 サーバ側でgetで受け取れるようにして直接パラメータを送ったらどうなるか等、何か切り分ける必要があると思います。
その他の回答 (1)
- LancerVII
- ベストアンサー率51% (1060/2054)
回答No.1
こんにちは。 どんな作りになっているかわからないので的確なアドバイスかわかりませんが、 キャッシュの問題では無いでしょうか? http://semooh.jp/jquery/api/ajax/jQuery.ajax/options/ cache:false でキャッシュしない設定になります。 またはリクエストURLに "search.php?" + new Date().getTime() とかしてあげると常に違うURLの扱いになってキャッシュしなくなります。
補足
ご回答ありがとうございます。 キャッシュの件は設定していました。 で今回のアドバイスの件を追記しましたが、 うまくいきませんでした。 codeigniterで開発していてcntlディレクトリのCU002.php(拡張子なしの設定)に 送信します。 routes.phpで$route['cntl/CU002/(:num)'] ='cntl/CU002'; としています Ajaxで $(function(){ //住所検索があったとき $('#addr_search').click(function(){ var zip = $('#zip').val(); var data = new Date().getTime(); $.ajax({ type: "POST", url: "/cntl/CU002/" + data, cache : false, data: {"zip":zip}, dataType: "json", success: function(data, status){ for(var i in data){ $("#addr_list").append('<tr><td>' + data[i].zip_code + '</td><td style="text-align:left"><a class="str" href="#">' + data[i].address + '</a></td></tr>'); } $.blockUI({ title: 'Tips', message: $("#list"), css: { top:'10px', overflow:'auto' } }); var options = { currPage : 1, //最初に表示するページ optionsForRows : [1,5,10], //表示する行数 rowsPerPage : 20 //デフォルト表示行数 } $('#addr_list').tablePagination(options); //プルダウンに変更があったとき $('.str').click(function(){ str = $(this).html(); $("#address1").val(str); $.unblockUI(); return false; }); $('.blockOverlay').attr('title', 'クリックで解除').click($.unblockUI); }, error: function(XMLHttpRequest, status, errorThrown){ alert("エラーが発生しました!"); } }); }); }); どこがおかしいかわかりません。 よろしくお願いします