現在、在庫管理プロジェクトを進めています。私はNetbeansプラットフォーム上でJSPとMySQLを使って作業しています。クエリに関する私のプロジェクトでは、データベースから値を取り出してテーブルに表示する必要があります。私のページでは、表示される行が動的である必要があります。それらは任意の数で表示する必要があります。私が選択した特定の選択肢に基づいて値を取り出す場合、選択肢に基づいてすべてのデータを表示し、それを表の行に表示できるはずです。テキストボックスを使って値を表示しているので、テーブルの複数の行に表示することができません。ここ は、コードスニペットである:データベースからデータを取得し、テキストボックスを使用してテーブルの行に動的に表示
<table>
<tr>
<td>
<select name="choice_type">
<option>select</option>
<option value="part_type">part_type</option>
<option value="category">category</option>
<option value="names">names</option>
</select>
</td>
</tr>
<tr>
<th>VAL</th>
<th>VAL DESC</th>
</tr>
<tr>
<td> <input type="text" name="val" id="val" size="15" /></td>
<td> <input type="text" name="val_desc" id="val_desc" size="15" /></td>
</tr>
</table>
<input type="submit" name="Query" value="Query" onClick="getData();"/>
以下の通りのgetData()関数がある:
function getData(){
xmlHttp=GetXmlHttpObject()
var id=document.getElementById("choice_type").value;
var url="choice_retrieval.jsp";//The code for this file is defined below
url=url+"?choice_type="+id;
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null);
}
function stateChanged(){
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
var showdata = xmlHttp.responseText;
var strar = showdata.split(":");
if(strar.length>1){
var strname = strar[1];
document.getElementById("val").value= strar[1];
document.getElementById("val_desc").value= strar[2];
}
}
次のようにchoice_retrieval.jspためのコードスニペットは:
<%
String ch = request.getParameter("choice_type").toString();
System.out.println(ch);
String data ="";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://", "", "");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from master_panel where choice_type='"+ch+"'");
while(rs.next())
{
data = ":" + rs.getString("val") + ": " + rs.getString("val_desc");
}
out.println(data);
System.out.println(data);
}
catch(Exception e) {
System.out.println(e);
}
%>
データベーステーブルここではmaster_panel(choice_type varchar、val varchar、val_desc varchar)を使用します。私は今のところ制約を置いていません。 choice_typeの値に基づいて、データベースから対応するデータ(valとval_desc)を取得し、それを動的行に表示する必要があります。
間違っていることが合意されていますが、@ Nealはページがクライアント側にロードされるとAjax呼び出しを実行しようとしています(getDataメソッドを参照).JSTLは前方への道ではありません。 –
@TrueDub:サーバーでデータベースからデータを取得するには、サーバーへのAJAX呼び出しを行っています。私が間違っているなら、私を助けてください。私の目的は、テーブルの行(テキストボックス)にデータを表示することです。私はJSPに新しいので、もしあなたが私に大きな助けになるこれに関連するサンプルチュートリアルを私に提供することができます。 – Neal
@ニック・ホルト:上記のコンセプトを示すサンプル・チュートリアルを私に提供することができれば、私にとって大きな助けになるでしょう。 Thanx – Neal