2012-01-17 17 views
1

これは私のJSPコードの一部です:データのこれらの2行は、データベースから取得されボタンをクリックするとtdから値を取得します。

<tr style="background-color: #F0F0F0; "> 
    <td class="leavehistory" style="width: 6%; padding: 7px;">1</td> 
    <td id="leaveID" class="leavehistory" style="width: 9%;">LE000002</td> 
    <td class="leavehistory" style="width: 12%;">2012-01-17 19:31:18.0</td> 
    <td class="leavehistory" style="width: 10%;">2 days</td> 
    <td class="leavehistory" style="width: 15%;">18/01/2012 - 19/01/2012</td> 
    <td class="leavehistory" style="width: 15%;">Sick</td> 
    <td style="width: 30%;"><select> 
       <option value="0">Pending</option> 
       <option value="1">Cancel</option> 
     </select> <input class="button" type="button" name="bttn" onClick="cancelSub();"value="View"/><input class="button" type="button" name="bttnDelete" onClick="cancelSub();"value="Change"/></td> 
</tr> 


<tr style="background-color: #F0F0F0; "> 
    <td class="leavehistory" style="width: 6%; padding: 7px;">2</td> 
    <td id="leaveID" class="leavehistory" style="width: 9%;">LE000003</td> 
    <td class="leavehistory" style="width: 12%;">2012-01-18 03:04:15.0</td> 
    <td class="leavehistory" style="width: 10%;">1 days</td> 
    <td class="leavehistory" style="width: 15%;">19/01/2012 - 20/01/2012</td> 
    <td class="leavehistory" style="width: 15%;">Sick</td> 
    <td style="width: 30%;"><select> 
       <option value="0">Pending</option> 
       <option value="1">Cancel</option> 
     </select> <input class="button" type="button" name="bttn" onClick="cancelSub();"value="View"/><input class="button" type="button" name="bttnDelete" onClick="cancelSub();"value="Change"/></td> 
</tr> 

<tr style="background-color: #F0F0F0; "> 
     <td class="leavehistory" style="width: 6%; padding: 7px;"><%=i++%></td> 
     <td id="leaveID" class="leavehistory" style="width: 9%;"><%=rs.getString(7)%></td> 
     <td class="leavehistory" style="width: 12%;"><%=rs.getTimestamp(1)%></td> 
     <td class="leavehistory" style="width: 10%;"><%=rs.getInt(2)%> days</td> 
     <td class="leavehistory" style="width: 15%;"><%=rs.getString(3)%> - <%=rs.getString(4)%></td> 
     <td class="leavehistory" style="width: 15%;"><%=rs.getString(5)%></td> 
     <td style="width: 30%;"><select> 
        <option value="0">Pending</option> 
        <option value="1">Cancel</option> 
      </select> <input class="button" type="button" name="bttn" onClick="cancelSub();"value="View"/><input class="button" type="button" name="bttnDelete" onClick="cancelSub();"value="Change"/></td> 
    </tr> 
<% } %> 

これはどのように生成されたHTML出力の2行のように見えるです。各行に1つの[表示と変更]ボタンがあります。 LE000001の行の[変更]ボタンをクリックすると、値 "LE000001"が表示されます。次に、この値を使用して休暇記録のステータスを更新することができます。

LE000002の行の[変更]ボタンをクリックすると、値 "LE000002"が表示されます。表示されるのは2行だけなので

データベースにさらに多くのレコードがある場合は、できるだけ多くのレコードを使用できます。価値を得る方法はありますか?

+0

読みやすくするためにマークアップをフォーマットすることはできますか? (私たちの何人かは、あなたの質問に答えるために多くの騒音であなたの意見に耳を傾ける時間がありません)コードのコメントを使用して問題の領域を強調してください。また、そこに3つのTD要素があることに気付きました。「leaveID」というIDは意図的なものですか?もしそうなら、それは無効なHTMLになり、あなたはjavaScriptを使ってID経由でその要素にアクセスするのに問題があります。 – 7wp

+0

もし、親のdivのidをクリックしてidを 'leaveId'にして、この要素の値を取得することで、jQueryを使ってボタンの親を取得するのであれば? –

+0

あなたはJS専用のソリューションに焦点を当てているようです。クライアントがJavaScriptを無効にしたときにサイトが正常に機能することを確認する必要があることを警告したかっただけです。 – BalusC

答えて

1

まず、同じleaveID IDを持つ複数の要素があるため、HTMLは無効です。

onClick="cancelSub('LE000001');" 

をので、それを生成するために:今すぐ

は、あなたの質問に答えるために、あなたは、単にあなたのJSにしない理由の関数は、引数として行のIDを取る

onClick="cancelSub('<%= rs.getString(7) %>');" 

ことJSPからJDBCの結果セットにアクセスすることは、適切なMVCアーキテクチャの欠如を示しています。 Read How to avoid Java code in JSP files?

+0

ええ、あなたは私の問題の男だ!おかげさまで私は自分のコードをMVCアーキテクチャに変更しようとします。 :) – crchin