フォーラム@nifty | フォーラム・サークル | サイトマップ | ヘルプ |
掲示板 コラム お役立ち イベント リンク   | FHPGサイトマップ | お問い合わせ |
TOP > お役立ち > JavaScriptのおもちゃ箱 > データ検索サンプル(1)  

データ検索サンプル(1) (IE4.0以降)

原案:平井 公大 氏 (2001/02/25 登録)

 表の中のデータを選択ボックスで絞り込むサンプル1です。このサンプルはデータをJavaScirptの配列に用意しておいて、レイヤの中に直接書き込み、選択ボックスの選択項目もその配列から得ています。IE4.0以降で動作します。

表示サンプル

ソース記述内容

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>データ検索サンプル(1)</title>
<script type="text/javascript">
<!--
var data = new Array(20);
var list = new Array(20);

data[0]  = "根菜類,だいこん,200";
data[1]  = "果実類,みかん,100";
data[2]  = "魚介類,ハマグリ,200";
data[3]  = "根菜類,にんじん,100";
data[4]  = "果実類,りんご,100";
data[5]  = "魚介類,ハマチ,400";
data[6]  = "野菜類,はくさい,200";
data[7]  = "果実類,イチゴ,200";
data[8]  = "魚介類,タイ,400";
data[9]  = "野菜類,キャベツ,100";
data[10] = "魚介類,マグロ,300";
data[11] = "魚介類,アサリ,100";
data[12] = "野菜類,レタス,300";
data[13] = "果実類,バナナ,100";
data[14] = "魚介類,イワシ,200";
data[15] = "根菜類,サトイモ,100";
data[16] = "魚介類,メザシ,100";
data[17] = "根菜類,ごぼう,100";
data[18] = "果実類,レモン,200"
data[19] = "野菜類,ネギ,100";
data[20] = "魚介類,サザエ,100";

for (i=0;i<data.length;i++) list[i] = data[i].split(',');

function listchk( s, str ) {
  for ( k=0; k < s.length; k++ ) {
    if ( s[k].text == str ) return false;
  }
  return true;
}

function wrtttl( s, p ) {
  var n = 0;
  for ( i=0; i < data.length; i++ ) {
    if( listchk( s, list[i][p] ) ) {
      n++;
      s.length++;
      if ( navigator.appName == 'Netscape' ) s.size += 1;
      s[n].text  = list[i][p];
      s[n].value = s[n].text;
    }
  }
}

function showlist(str) {
  var head = '<table border="1" width="300" cellspacing="0" cellpadding="4">';
  var foot = '</table>';
  if( document.getElementById ) {
      document.getElementById('L2').innerHTML = head + str + foot;
  } else if ( document.layers ) {
    document.layers['L2'].document.open();
    document.layers['L2'].document.write(head + str + foot);
    document.layers['L2'].document.close();
  }
}

function wrtlst() {
  var s = "";
  for ( i=0; i < list.length; i++ ) {
    s += '<tr>';
    for ( w=0; w < list[i].length; w++ ) {
      s += '<td width="100">' + list[i][w] + '</td>';
    }
    s += '</tr>';
  }
  showlist(s);
}

function seach( arg, n ) {
  var s = "";
  if (n!=0) document.frm1.kind.selectedIndex = 0;
  if (n!=1) document.frm1.name.selectedIndex = 0;
  if (n!=2) document.frm1.pric.selectedIndex = 0;
  for ( i=0; i < list.length; i++ ) {
    if ( arg == list[i][n] ) {
      s += '<tr>';
      for ( w=0; w < list[i].length; w++ ) {
        s += '<td width="100">' + list[i][w] + '</td>';
      }
      s += '</tr>';
    }
  }
  if(s) showlist(s); else wrtlst();
}

function init() {
  wrtttl( document.frm1.kind.options , 0 );
  wrtttl( document.frm1.name.options , 1 );
  wrtttl( document.frm1.pric.options , 2 );
  wrtlst();
}

// -->
</script>
</head>
<body>
<div style="text-align:center;"> 
  <div id="L1" style="margin:0em;"> 
    <form name="frm1" style="margin-bottom:0em;">
      <table border="1" width="300" cellspacing="0" cellpadding="3">
        <tr>
          <td width="100" align="center">
            <select name="kind" style="width:90;" onChange="seach(this[this.selectedIndex].value, 0 )">
              <option selected value="種  別">種  別</option>
            </select>
          </td>
          <td width="100" align="center">
            <select name="name" style="width:90;" onChange="seach(this[this.selectedIndex].value, 1 )">
              <option selected value="品  名">品  名</option>
            </select>
          </td>
          <td width="100" align="center">
            <select name="pric" style="width:90;" onChange="seach(this[this.selectedIndex].value, 2 )">
              <option selected value="価  格">価  格</option>
            </select>
          </td>
        </tr>
      </table>
    </form>
  </div>
  <div id="L2" style="position:relative; margin:0em;"></div>
</div>
</body>
</html>
個人情報保護ポリシー
Copyright© NIFTY 2006 All Rights Reserved.
Copyright© FHPG 2006 All Rights Reserved.