人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

フォームメール(CGI)についての質問です。
項目を自動入力させたくアドバイスをいただきたいのですが?http://aquz.jp/test1/postmail/postmail.htmlにおいて
「LOM名」を選ぶと下の5項目ぐらいが自動で入力されるようにしたいのですが煮詰まってしまいました。
javascriptにて100行程度の簡易的なDBファイル(aaa.js)を別途作成したのですが、呼び出し方法等がわかればありがたいのですが?ちなみにjsファイルの記述は
jsDB[0]="LOM名,郵便番号,事務局住所,事務局TEL,事務局FAX,・・・・";
となっております。


●質問者: kaji0245
●カテゴリ:インターネット ウェブ制作
✍キーワード:AAA FAX JavaScript js アドバイス
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Yota
●27ポイント

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript">

var listAry = {"青年会議1":{"郵便番号":"9503122","住所":"甘木1丁目"},"青年会議2":{"郵便番号":"9503121","住所":"甘木2丁目"}}

function inputAry(val) {

//alert(val) ;

if(val != "") {

document.forms[0].elements[1].value = listAry[val]["郵便番号"] ;

document.forms[0].elements[2].value = listAry[val]["住所"] ;

}

}

</script>

</head>

<body>

<form>

<select onchange="inputAry(this[this.selectedIndex].value);">

<option value="" selected="selected">選択</option>

<option value="青年会議1">青年会議1</option>

<option value="青年会議2">青年会議2</option>

</select>

<input type="text" name="yubin"/>

<input type="text" name="jyusho"/>

</form>

</body>

</html>

こういうようなものを作ればいいと思うのですが、問題として100行もあるファイルを読み込ませるとブラウザに負担をかけないかということです。

Ajaxを利用して必要なデータのみ取り込むというのが妥当だと思いますが、いかがでしょう。

もっといえばデータベースを利用したほうが、データの増減変更が容易である。

それと上のスクリプトではわかりやすくするため連想配列を使っていますが、普通の配列のほうが軽いからいいと思います。

参考にしてください。

http://allabout.co.jp/internet/javascript/closeup/CU20050515A/in...

◎質問者からの返答

なるほど、早速いじってみます。


2 ● tully
●27ポイント

ページを開いた段階で、まずaaa.jsに記述されているjsDBの内容をローカル配列に持つ必要があります。

後は、LOM名のセレクトのonchangeイベント発生時に、選択されてるLOM名の表示されている名前と一致するローカル配列を探し出します。

jsDBの中身がカンマ区切りなので、該当のカラムを取り出すのに、splitかなにかで分割してやらないといけませんね。

比較対象のカラムを取り出せたら、その文字列とLOM名の文字列を見比べて、同じならば、その行の内容を各コントロールにセットするという方法が簡単かなと思います。



自分の持っていた参考書のサンプルにそっくりなものがあったので、そのURLです。著作権フリーのはずなので、参考にしてみてください。

jsDB003

◎質問者からの返答

私もこのテキストを片手にやっておりました。参考にさせていただきます。


3 ● openseed
●26ポイント

質問の目的は、以下のようなイメージでしょうか?間違っていたらごめんなさい。

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript">
<!--
var jsDB = new Array();
function inputAry(val) {
  :
}
:
// -->
</script>
<script src="./aaa.js" charset="utf-8"></script>
</head>

charset="utf-8" は、js ファイルのエンコーディングを指定します。

参考になれば幸いです。

http://www.tohoho-web.com/js/write.htm#jsfile

◎質問者からの返答

ご回答ありがとうございます。参考にさせていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ