Получить значение от тд, когда кнопка нажата. - PullRequest
1 голос
/ 17 января 2012

Это часть моего кода JSP:

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

Вот как выглядят 2 строки сгенерированного вывода HTML:

<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 строки данных извлекаются из базы данных. Для каждой строки есть одна кнопка View and Change. Если я нажму кнопку «Изменить» для строки LE000001, то получу значение - «LE000001». Затем я могу использовать значение, чтобы обновить статус записи о выходе.

Если я нажму кнопку «Изменить» для строки LE000002, то получу значение - «LE000002». Так как показаны только 2 строки.

Может быть как можно больше, если в базе данных больше записей. Есть ли способ получить значение?

1 Ответ

1 голос
/ 17 января 2012

Прежде всего, ваш HTML-код недействителен, потому что у вас есть несколько элементов с одинаковым leaveID ID.

Теперь, чтобы ответить на ваш вопрос, почему бы вам просто не заставить свои функции JS принимать идентификаторстроки в качестве аргумента:

onClick="cancelSub('LE000001');"

и, следовательно, для его генерации:

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

Тем не менее, использование скриптлетов и доступ к наборам результатов JDBC из JSP показывает отсутствие надлежащей архитектуры MVC.Читать Как избежать использования кода Java в файлах JSP?

...