我在mysql数据库上通过php运行查询。使用我的结果集,我正在迭代下表:
$resultString = '<table>';
$resultString .= '<tr>';
$resultString .= '<th>Index</th>';
$resultString .= '<th>Title</th>';
$resultString .= '<th>File</th>';
$resultString .= '<th>Template File</th>';
$resultString .= '<th>Pretty URL</th>';
$resultString .= '<th>Parent</th>';
$resultString .= '<th></th>';
$resultString .= '</tr>';
while($data = mysql_fetch_assoc($results)){
$resultString .= '<form class="myForm">' ."\n";
$resultString .= '<tr>' ."\n";
$resultString .= '<input type="hidden" name="index" value="' . $data['index'] . '">' ."\n";
$resultString .= '<input type="hidden" name="title" value="' . $data['title'] . '">' ."\n";
$resultString .= '<input type="hidden" name="file_name" value="' . $data['file_name'] . '">' ."\n";
$resultString .= '<input type="hidden" name="template_file" value="' . $data['template_file'] . '">' ."\n";
$resultString .= '<input type="hidden" name="child_of" value="' . $data['child_of'] . '">' ."\n";
$resultString .= '<input type="hidden" name="pretty_url" value="' . $data['pretty_url'] . '">' ."\n";
$resultString .= '<td class="indexTd">' . $data['index'] . '</td>' ."\n";
$resultString .= '<td>' . $data['title'] . '</td>' ."\n";
$resultString .= '<td>' . $data['file_name'] . '</td>' ."\n";
$resultString .= '<td>' . $data['template_file'] . '</td>' ."\n";
$resultString .= '<td>' . $data['pretty_url'] . '</td>' ."\n";
$resultString .= '<td>' . $this->get_parent_select_list($data['child_of'],$data['index']) . '</td>' ."\n";
$resultString .= '<td class="buttonTd"><input type="button" class="deletePageButton" value="X" onclick="submit_form(this,\'deletePage\')"></td>' ."\n";
$resultString .= '</tr>' ."\n";
$resultString .= '</form>' ."\n";
}
$resultString .= '</table>';
表格很棒,唯一的问题是我的表单根本不起作用...在FireBug中查看它我看到了:
表单正在关闭,因为我的所有输入标记都可以填充它。我已经尝试将标签放在“&lt; td&gt;”中而不是“&lt; tr&gt;”无济于事....
想法?
答案 0 :(得分:11)
当您在另一个标记中打开标记时,您打开的标记将在其父标记关闭时关闭。所以这个:
<p><form></p>
<p></form></p>
将(或应该)导致:
<p><form></form></p>
<p></p>
您应该在桌子上方打开表格并将其关闭在底部,从而将整个表格封闭在表格中。
在tr,td,thead,tbody,tfoot或th标签之间放置非表格标签是不好的做法,不符合w3c
答案 1 :(得分:0)
您需要将表单放在TD中。
我还建议使用模板生成HTML,但这超出了这个问题的范围。
答案 2 :(得分:-1)
egads!你永远不应该嵌套这样的html元素!表格应该放在<td>
内或整个表格之外。并且你不应该将隐藏的表单元素放在<tr>
中!他们应该进入<td>
。