Q7 検索フォームを作ろう
【form_tab.sql】

GENERATE HTML
{ 
  { embed(file="http://www.db.ics.keio.ac.jp/ssql/
                ajax_tutorial/query/form.html")
    @{class=form,divid=form} 
  }!
  { embed(file="http://www.db.ics.keio.ac.jp/ssql/
                ajax_tutorial/query/cardata.sql",
          where="co.id>=",
          att=co.id)
    @{class=searchdiv,tab=yes,divid=searchdiv,status=hidden} 
   }
}@{cssfile=demo.css}
FROM company co;

【form.html】

<HTML>
<HEAD>
</HEAD>
<body>
<form method="post" action="" name="test" 
    onsubmit="return searchExe('test','myTab')">

<input type="hidden" name="configfile" 
   value="http://www.db.ics.keio.ac.jp/ssql/
          ajax_tutorial/config.ssql">

<input type="hidden" name="sqlfile" 
   value="http://www.db.ics.keio.ac.jp/ssql/
          ajax_tutorial/query/form_price.sql">


車種名 : <input type="text" name="$name" size=25><BR>
<input type="submit" value="submit"><br>
</BODY>
</HTML>

【form_price.sql】

GENERATE HTML
{
{
  {"車種名"@{class=form2} }!
  ["・ "+ca.name@{class=formresult2}]! 
}@{cssfile=http://www.db.ics.keio.ac.jp/~tk/ajaxdemo/demo.css}
}@{tableborder=0}
FROM car ca, company co, engine e
WHERE ca.name like '% $name %' 

					
Q7の解説
検索フォームを作っているのはform.htmlです。 まずDBなどの設定が書かれた設定ファイル config.ssqlのアドレスをサーバに送信します。(青文字も部分) 検索結果を表示するために利用するSuperSQLクエリ( form_price.sql )のアドレスを同様に送信します。(緑文字の部分)

form_price.sqlではWHERE句に $name という変数が記述されています。 これは form.html で input タグのname属性に指定したものと対応関係が取れている必要があります。 form.htmlのname属性が$nameであるinputタグに入力された値が form_price.sqlの$nameの箇所に補われます。(赤文字の部分)

検索結果をtabに表示するためにonSubmit属性をformタグに指定します。(オレンジ文字の部分) searchExeの左側の引数(例の場合test)にはformタグのname属性の値を指定します。 searchExeの右側の引数(例の場合、myTab)には検索結果を表示する領域のidを指定します。 Tabに表示したい場合には myTab を指定します。 Tab以外に表示したい場合には対象領域のidを指定します。