다양한 상태가 될 수있는 항목 집합이 있습니다. 나는 사용자가표 형식 (X) HTML 양식
- 변화 상태로 (X) HTML 양식을 사용할 수 있도록하려면, 그리고
- 쉽게이 너무 ... 객체
그룹의 상태를 볼
이| item1 | radio button for state 1 | radio for state 2 | ... | [update button] |
| item2 | radio button for state 1 | radio for state 2 | ... | [update button] |
등 나는 그것이 시각적으로 특정 상태에서 물건을 검색하는 사용자를 위해 쉽게 있도록 상자를 나열 라디오 버튼을 선호 : 말은, 내가 좋아하는 레이아웃을하고 싶습니다.
그것은 완벽하게 표의 데이터처럼 보였습니다. 유일한 문제는 표 셀을 가로 지르는 표 안에 양식을 포함 할 수 없다는 것입니다 (예 : <tr> <form> <td> ...
이 유효하지 않음).
"어이, 나는 테이블을 감싸는 하나의 거대한 형식을 가질 수 있고 [업데이트 버튼] 값에 각 행의 ID가 포함될 수 있습니다!"라고 생각했습니다. 특정 버전의 IE가 하나의 양식에 모든 보내기 버튼 값을 보냅니다.
그래서 나는 <div>
으로 레이아웃을하고 양식을 하나의 <td>
안에 넣으려고했습니다. 그러나 그들은 각각 <div>
에 선을 긋는다. 그래서 나는 그들의 너비를 고치고 그들을 float: left
로 만들었다. 그러나 테이블 행이 페이지보다 넓고 라디오 컨트롤이 제목과 일 치하지 않으면 테이블 셀 안에 래핑됩니다.
내가 의도 한대로 이것을 배치 할 수 있습니까? 아래의 XHTML은 의도 된 구조를 보여줍니다. 브라우저 윈도우의 크기를 테이블의 너비보다 낮게 만들면 어떤 일이 일어나는지 관찰하십시오 (이상적으로는 이름이 깨지거나 테이블에 스크롤 바가 표시되는 것이 이상적입니다).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>Test</title>
<style type="text/css">
.state-select, .thing-state-name, .update {
float: left;
width: 8em;
}
.state-select {
text-align: center;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th class="thing-name-header">Thing</th>
<th>
<div class="thing-state-name">Present</div>
<div class="thing-state-name">Absent</div>
<div class="thing-state-name">Haven't looked</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Apple</td>
<td>
<form action="something" method="post">
<input type="hidden" name="id" value="1" />
<div class="state-select"><input type="radio" name="presence" value="present" checked="checked" /></div>
<div class="state-select"><input type="radio" name="presence" value="absent" /></div>
<div class="state-select"><input type="radio" name="presence" value="unknown" /></div>
<div class="update"><input type="submit" value="Update" /></div>
</form>
</td></tr>
<tr>
<td>Orange</td>
<td>
<form action="something" method="post">
<input type="hidden" name="id" value="2" />
<div class="state-select"><input type="radio" name="presence" value="present" /></div>
<div class="state-select"><input type="radio" name="presence" value="absent" checked="checked" /></div>
<div class="state-select"><input type="radio" name="presence" value="unknown" /></div>
<div class="update"><input type="submit" value="Update" /></div>
</form>
</td></tr>
<tr>
<td>David Bowie</td>
<td>
<form action="something" method="post">
<input type="hidden" name="id" value="3" />
<div class="state-select"><input type="radio" name="presence" value="present" /></div>
<div class="state-select"><input type="radio" name="presence" value="absent" /></div>
<div class="state-select"><input type="radio" name="presence" value="unknown" checked="checked" /></div>
<div class="update"><input type="submit" value="Update" /></div>
</form>
</td></tr>
</tbody>
</table>
</body>
</html>
흥미로운 접근 방식을하지만,이 경우 20 개 항목 말한다 페이지 당 하나씩 업데이트되고 하나가 업데이트되면 서버는 변경되지 않은 데이터의 20 배를 처리해야합니다. 그럼에도 불구하고 여러 개의 업데이트가 도움이 될 수 있습니다. (또한 CherryPy 백엔드 + Cheetah 템플릿 처리이므로 PHP는 없지만 그럼에도 불구하고 가능합니다.) – detly
공, 왜 내가 PHP인지 추측 할 수 없습니다. – Sam152
죄송 합니다만, 저는 이것을 받아들이는 것을 거의 잊었습니다. 이 접근 방식은 클라이언트 측 JS 및 AJAX를 사용하여 서버 과용을 방지하는 데 가장 효과적입니다.결국 어쨌든 목록 상자를 사용하여 끝났지 만, 이는 합리적인 것인지 아닌지 파악하는 데 도움이되었습니다. – detly