
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
AJAX で問い合わせをすれば本格的ですが、データが数百件で即応性が問われないのでしたら、こんなのでどうでしょうか。
<script>
var data = {
'001':'太郎さんに貸し出し中',
'002':'花子さんに貸し出し中',
'003':'図書館にあります',
/* 以下同様にたくさん */
};
addEventListener('load',function(e){
/**/ document.forms['search'].addEventListener('submit',function(ev){
/**/ /**/ var no = ev.target.elements['no'].value;
/**/ /**/ var status = data[no];
/**/ /**/ status = status? status: '書籍が存在しません';
/**/ /**/ var span = ev.target.querySelector('.status');
/**/ /**/ while (span.firstChild) span.removeChild(span.firstChild);
/**/ /**/ span.appendChild( document.createTextNode(status) );
/**/ /**/ ev.preventDefault();
/**/ },false);
},false);
</script>
<form name=search>
書籍番号:<input type=text name=no><button type=submit>問い合わせ</button>
<span class=status></span>
</form>
No.2
- 回答日時:
まず、動作環境をどの様に想定しているのか?
それから、データの更新はどうするのか?
処理速度等の操作性は、どの程度要求されるのか?
等々、いろいろな前提条件により、
提示内容も異なり、また困難であるという結論も・・・。
基本は、全てIF文で記述してはという事ですが、如何でしょうか。
データの保持方法,更新方法によっては、
実はこのIF文で記述が一番速く,ブラウザの種類をあまり意識する必要が少なく,
そして簡単だったりするのです・・・。
次にデータからイメージできる処理の形が、
索引編成ファイルをイメージした、
配列を用いた方法です。
配列を2つ用意して、片方をキーの配列,もう片方をデータの配列とし、
キーの配列で該当する値のインデックスを求め
次にそのインデックスを用いてデータの配列から
必要とする値を取得する。
この時、キーの値を昇順なりで並べておけば、
逐次検索(順番に検索)した時、探している値とキーを比べて,値が行き過ぎた場合、該当データなしと
早々に判断できまます。
また、総データ数がわかっている場合に、二分検索にて、まず真ん中辺りのキー値を拾い,判断し
その大小関係にて上半分または下半分を対象にすると
半分ずつに対象を絞る方法もありまます。
欠点は、配列を使う事により、
ブラウザの種類を多少意識する必要が発生する事。
あと、データ件数の制限があるかも・・・。(未確認)
長所は、データと処理が分離できる事。それだけ。逐次検索も二分検索も、IF文による直接記述でも可能。
ですので、データの保持,更新はどうするのかが、
処理方法を選定するのに重要な点なのです。
(データの加工をプログラムでするのなら、
そのプログラムでJavaScriptソース自体を加工しても
問題ない訳ですから・・・。)
あと蛇足で、データを1つの文字列変数として
サーチの命令を使う方法・・・。
これは、その様な考え方もあると知っている程度でいいでしょう。
内部規約として予約語みたいな物が必要となり、
特定の文字列がデータとして使えなくなるという欠点と、
なによりサーチの命令,文字列の抜き取りと
命令の種類が増える分、
余計にブラウザの種類を意識する必要が発生するので・・・。
結局,データの形式,保持,更新方法が不明な為、
既存のツールの提示は困難で・・・。
というか、やはりそれらを意識せずどれでも動く
簡単なのはと・・・。
「IF文でこつこつと記述するでしぃ~!?」
手間がかかって嫌な場合は、改めて
データについての詳細を提示してご質問下さい。
No.1
- 回答日時:
大体40万件程度ありますので、それを処理するとなるとJavascriptだと重いような・・・
10Mくらいあるので、それをHTMLで書き出してJavascriptで処理するのは無謀かと。。
郵便番号のデータは郵政省のHPに行けばDLできます。
この回答への補足
ありがとうございます!
そもそも郵便番号を処理するわけでは有りません。
詳細は申し上げられないのですが、このようにイメージしていただければ嬉しいです。
------------------------------------------
私設図書館の蔵書検索システム
書籍番号:001 --太郎さんに貸し出し中
書籍番号:002 --花子さんに貸し出し中
書籍番号:003 --図書館にあります
------------------------------------------
処理するデータは200件~300件程度です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Google Maps 郵便番号を Google マップで調べる方法を教えてください 環境としては 日本に滞在して間もない 3 2022/03/23 12:25
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Yahoo!メール Yahooメールにログインできません 2 2022/12/12 07:46
- その他(ネットショッピング・通販・ECサイト) 中国のサイトで注文して昨日の返信です 配送状況は、下記配達会社のWEBサイトにご確認いただけます。 3 2022/12/31 08:19
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- その他(ビジネス・キャリア) 国税庁法人番号公表サイトの検索で会社の名前入れて所在区や郵便番号入れて情報が出てこない 2 2023/04/30 10:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テトリス / 配列をブロックに...
-
Perlの配列をJavaScriptに渡せ...
-
jspからjavascriptの変数引継ぎ
-
XMLHttpRequestでキャッシュを...
-
Boolean型配列中のTrueの有無を...
-
vb.netでの記述方法について 以...
-
投稿画像の確認画面
-
javascriptのdocument.allにつ...
-
iframeのソースを取得したい
-
div要素内の全input要素をdisable
-
jqueryuiのdialog
-
onchangeイベントを使ってspan...
-
innerHTML実行後のイベント
-
appendChildがieだとできない??
-
初回訪問(アクセス)日時の取...
-
指定日数経過でHTML上のデータ...
-
Eclipseでパッケージ表示がフラ...
-
Enterで次の入力項目へ進むには?
-
functionから別のfunctionを実...
-
ifreamをリロードしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
javascript 変数名の連結をしたい
-
undefinedを表示させない方法は...
-
二次元配列を使って順位をだす...
-
javascriptで2つのArrayの...
-
複数のフィードの読み込みが日...
-
二次元配列の全要素の全要素を...
-
javascriptを用いて作成された...
-
("Scripting.Dictionary")につ...
-
javascriptで行を抽出したいです。
-
JavaScriptで簡単なクイズを作...
-
1から20までの整数から、重複な...
-
javascriptついてお聞きします。
-
ぷよぷよの消去アルゴリズムが...
-
配列を作って総当たりで距離を...
-
配列の数ではなく、文字列の長...
-
jQueryで文字数カウンタ(複数...
-
jQuery text()で、<br>タグも取...
おすすめ情報