2012-01-17 3 views
1

이 내 JSP 코드의 일부입니다버튼을 클릭하면 td에서 값을 가져옵니다.

<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 행과 같이하는 방법입니다 데이터의

<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> 

이 2 행은 데이터베이스에서 검색됩니다. 각 행에 대해 하나의보기 및 변경 단추가 있습니다. LE000001의 행에 대한 변경 버튼을 클릭하면 값 "LE000001"이 표시됩니다. 그런 다음이 값을 사용하여 휴가 기록의 상태를 업데이트 할 수 있습니다.

LE000002의 행에 대한 변경 버튼을 클릭하면 "LE000002"값이 표시됩니다. 표시되는 행은 2 행 뿐이므로

데이터베이스에 더 많은 레코드가있는 경우 가능한 한 많이 사용할 수 있습니다. 가치를 얻을 수있는 방법이 있습니까?

+0

가독성을 높이기 위해 마크 업을 다시 포맷 할 수 있습니까? (우리 중 일부는 질문에 대답하기 위해 많은 시간을 들여 소음을 읽지 않습니다.) 코드 주석을 사용하여 문제 영역을 강조하십시오. 또한 거기에 "leaveID"라는 동일한 ID를 가진 3 개의 TD 요소가 있다는 것을 알았습니다. 의도적입니까? 그렇다면 HTML이 유효하지 않으므로 javaScript를 사용하여 ID를 통해 해당 요소에 액세스하는 데 어려움이 있습니다. – 7wp

+0

아마 버튼의 부모 (부모 div의 id)를 얻은 다음 id가 'leaveId'인 요소를 찾고이 요소의 (.val()) 값을 얻는다면 jQuery? –

+0

JS 전용 솔루션에 집중하는 것 같습니다. 나는 단지 클라이언트가 자바 스크립트를 사용할 수 없을 때 사이트가 똑같이 잘 작동하는지 확인해야한다고 경고하기를 원했다. – BalusC

답변

1

먼저 leaveID ID를 가진 여러 요소가 있기 때문에 HTML이 유효하지 않습니다.

onClick="cancelSub('LE000001');" 

를 따라서 그것을 생성 : 이제

가 귀하의 질문에 대답하기 위해, 당신은 단순히 당신의 JS하지 않는 이유 함수는 인수로 행의 ID를 가지고

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

그 스크립틀릿을 사용하고 JSP에서 JDBC 결과 집합에 액세스하는 것은 적절한 MVC 아키텍처가 없다는 것을 보여줍니다. 읽기 How to avoid Java code in JSP files?

+0

그래, 너 내 문제는 젠체하는구나! 감사합니다. 내 코드를 MVC 아키텍처로 변경하려고합니다. :) – crchin

관련 문제