jQuery:jquery.gmap3を使用して、住所からGoogle Mapsを出力

Google MapsWEBサイトに表示させることはよくあることだと思います。

住所が固定の場合は、Googleマップから住所を検索し、HTMLコードを取得すれば簡単に組み込むことができますが、
入力された住所からGoogle Mapsを出力したい場合、「jquery.gmap3」を使用すれば簡単に住所からGoogleマップを出力することが可能です。

jquery_gmap3

下記に住所からGoogle Mapsを出力した時の使用方法をメモします。


jquery.gmap3

jquery.gmap3

Google Maps API V3」を使用したプラグイン。
住所や座標からGoogleマップを表示することが可能です。


「jquery.gmap3」使用方法

JS

「Google Maps API」と「jQuery」を読み込みます。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

ダウンロードしたプラグインを呼び出し、下記のコードを記述します。
「address」の箇所に出力したい場所の住所を記述します。
「latitude」と「longitude」は座標で指定する場合記述します。
二つ記述した場合は「address」の方が優先されるそうです。

<script type="text/javascript" src="/js/jquery.gmap3.js"></script>
<script type="text/javascript">
$(function() {

    $("#gMap").gmap3({
        address: '東京都港区台場',
        latitude: 35.630497,
        longitude: 139.778471,
        zoom: 12,
        navigationControl: true,
        mapTypeControl: true,
        scaleControl: true,
        markers: [{
            address: '東京都港区台場',
            latitude: 35.630497,
            longitude: 139.778471,
        }]
    });

});
</script>

マーカーを指定する場合は「markers」に指定したい場所を記述します。


CSS

表示するGoogle Mapsの幅、高さを指定します。

<style type="text/css">
div#gMap {
    width: 400px;
    height: 300px;
}
</style>

HTML

表示したい箇所に下記のコードを記述します。

<div id="gMap"></div>

住所や座標からGoogle Mapsを出力できるのでとても便利です。
他にもマーカーオプションなど設定の方法が色々あるので、とても使いやすいと思います。

Javascript:「ajaxzip3」で郵便番号から住所を自動入力

お問い合わせフォームなどで郵便番号を入力すると自動住所が入力されるフォームがあります。

郵便番号検索ができる「ajaxzip3」を使用すると簡単に設置することが可能です。
ユーザビリティの向上にもなると思うし、とても使いやすいです。

下記に「ajaxzip3」を設置した時の方法をメモします。

ajaxzip3


「ajaxzip3」の使用方法

今回、都道府県をセレクトボックスを使用して設置してます。

Javascript

下記のJSファイルを読み込みます。

<script src="http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js"></script>

httpsの場合は下記を記述します。

<script src="https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3-https.js"></script>

PHP

<?php
// 都道府県
function get_pref() {
    return array(
        1 => '北海道',
        2 => '青森県',
        3 => '岩手県',
        4 => '宮城県',
        5 => '秋田県',
        6 => '山形県',
        7 => '福島県',
        8 => '茨城県',
        9 => '栃木県',
        10 => '群馬県',
        11 => '埼玉県',
        12 => '千葉県',
        13 => '東京都',
        14 => '神奈川県',
        15 => '新潟県',
        16 => '富山県',
        17 => '石川県',
        18 => '福井県',
        19 => '山梨県',
        20 => '長野県',
        21 => '岐阜県',
        22 => '静岡県',
        23 => '愛知県',
        24 => '三重県',
        25 => '滋賀県',
        26 => '京都府',
        27 => '大阪府',
        28 => '兵庫県',
        29 => '奈良県',
        30 => '和歌山県',
        31 => '鳥取県',
        32 => '島根県',
        33 => '岡山県',
        34 => '広島県',
        35 => '山口県',
        36 => '徳島県',
        37 => '香川県',
        38 => '愛媛県',
        39 => '高知県',
        40 => '福岡県',
        41 => '佐賀県',
        42 => '長崎県',
        43 => '熊本県',
        44 => '大分県',
        45 => '宮崎県',
        46 => '鹿児島県',
        47 => '沖縄県'
    );
}
?>

HTML

郵便番号を2つのテキストボックスに分けています。
郵便番号のテキストボックスは1つでも可能です。

<input type="text" name="zip1" value="" maxlength="3" /> - 
<input type="text" name="zip2" value="" maxlength="4" onKeyUp="AjaxZip3.zip2addr('zip1','zip2','pref','address');" />
<br>
<select name="pref">
    <option value="">選択</option>
    <?php foreach (get_pref() as $key => $value): ?>
    <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
    <?php endforeach; ?>
</select>
<br>
<input type="text" name="address" value="" />

2つ目の郵便番号の入力が終わると自動的に住所が入力されます。

Linux:DNS設定でサブドメインをワイルドカードで指定

一つのドメインに対して複数のサブドメインを設定したい場合があります。
DNSの設定で「*(アスタリスク)」を使用すればワイルドカードで指定することが可能です。

サブドメインを設定する際に毎回ゾーンファイルを変更しなくてOKなので、頻繁にサブドメインを設定する場合はワイルドカードを使用した方が楽に設定できると思います。

下記にDNSの設定でゾーンファイルサブドメインの指定をワイルドカードを使用した時の記述方法をメモします。


サブドメインをワイルドカードで指定する

$TTL    86400
@       IN      SOA     ns1.hoge.com.  root.hoge.com.(
2012101001 ; Serial
28800      ; Refresh
14400      ; Retry
3600000    ; Expire
86400 )    ; Minimum
        IN NS   ns1.hoge.com.
        IN NS   ns2.hoge.com.
        IN MX 10 hoge.com.
@       IN A    xxx.xxx.xxx.xxx
www     IN A    xxx.xxx.xxx.xxx
ns1     IN A    xxx.xxx.xxx.xxx
ns2     IN A    xxx.xxx.xxx.xxx
*       IN A    xxx.xxx.xxx.xxx

最後の行で*で指定しています。

*       IN A    xxx.xxx.xxx.xxx

ワイルドカードで指定した場合、指定がない全てのサブドメインはIPアドレスで指定したサーバにつながります。
別のサーバにつなげる場合は個別に設定する必要があります。

test    IN A    aaa.aaa.aaa.aaa
blog    IN A    yyy.yyy.yyy.yyy
*       IN A    xxx.xxx.xxx.xxx

「test.hoge.com」「blog.hoge.com」はそれぞれ別のサーバにつないで、それ以外はワイルドカードで指定したサーバに接続します。


Codeigniter:セッションクラスの使用方法

Codeigniterセッションを使用する場合、セッションクラスを使用すると簡単にデータを操作することができます。

データの格納や取得など色々と使う場面が多いので、Codeigniterセッションクラス使用方法をメモします。


セッションクラス

セッションクラスを使用する場合は、下記のコードを記述しセッションクラスを使用できるようにします。
下記をロードしないとセッションクラスを使用することができないので注意です。

$this->load->library('session');

セッションを格納

単体の値を格納する場合は下記のように記述します。

$this->session->set_userdata('user_name', 'test');

複数の値を格納する場合は配列で値を渡します。

$this->session->set_userdata(array('user_id' => 1, 'user_name' => 'test'));

配列ごとセッションに格納する場合は下記のように記述します。

$user_data['user_id'] = 1;
$user_data['user_name'] = 'test';
$user_data['user_item'] = 'hoge';

$this->session->set_userdata(array('user_session' => $user_data));

セッションを取得

取得したいセッションのキーを指定して取得します。

$user_name = $this->session->userdata('user_name');

全てのセッション情報を取得する場合は下記のように記述します。

$all_data = $this->session->all_userdata();

セッションを削除

セッションに格納したデータをキーを指定して削除します。

$this->session->unset_userdata('user_name');

セッションを破棄

セッションに格納した情報をクリアする場合に使用します。

$this->session->sess_destroy();

セッションはデータベースに格納することも可能です。
その場合はデータベースを作成し、「application/config/config.php」をデータベースを使用するように変更します。

CSS:ulのリストをfloatで並べて中央揃えする方法

ulタグfloatし、横に並べて表示することはよくあります。

css_float1

ページャーナビゲーションなどで使用することが多いと思いますが、
ulで作ったリストを中央揃えセンタリング)をしようとした時に「margin: 0 auto;」などではセンタリングできなかったので、
floatで並べたリストを中央揃えにする方法をメモします。

また、表示する幅が固定の場合は「margin: 0 auto;」で中央揃えにすることが可能です。


floatで並べたリストを中央揃えにする

「position: relative;」を使用し、位置をしています。
ulのリストを50%右に移動し、liを50%左に移動させることでセンタリングが可能になるようです。

CSS

<style type="text/css">
.list {
    border: 1px solid #CCC;
    padding: 10px;
    overflow: hidden;
    position: relative;
}
.list ul {
    list-style: none outside none;
    float: left;
    margin: 0 0 0 0;
    padding: 0;
    position: relative;
    left: 50%;
}
.list ul li {
    float: left;
    margin-right: 5px;
    padding: 5px;
    border: 1px solid #999;
    position: relative;
    left: -50%;
}
</style>

HTML

<div class="list">
    <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        <li>ddd</li>
    </ul>
</div>

修正前

css_float2


修正後

css_float1


参考サイト

floatで並べたリストのセンタリング – Weblog – hail2u.net