删除按钮布局

时间:2012-04-24 19:56:26

标签: php

我已经通过处理复选框的解决方案,并认为我理解我需要做什么,但我有一个问题,我把删除按钮放在这个代码中。这是我的表:

<table>
    <thead>
    <tr>
        <th>Camera Name</th>
        <th>Date Created</th>
        <th>Video Size</th>
        <th>Video Length</th>
        <th>
            <button type="submit" class="deletebutton" name="delete_video" value="Delete" title="Delete the selected videos" onClick="return confirm('Are you sure you want to delete?')">Delete</button><br>
            <input type="checkbox" name="radioselectall" title="Select All" />
        </th>
    </tr>
    </thead>
    <tbody>

 <?php

for($i=0;$i<$num_videos;$i++)
{
       //do stuff
       //Note: I'm looping here to build the table from the server
?>              
        <tr >
            <td onclick="DoNav('<?php echo $url; ?>');">
                        <?php echo $result_videos[$i]["camera_name"]; ?> 
            </td>
            <td onclick="DoNav('<?php echo $url; ?>');">
                        <?php echo setlocalTime($result_videos[$i]["video_datetime"]); ?> 
            </td>
            <td onclick="DoNav('<?php echo $url; ?>');">
                        <?php echo ByteSize($result_videos[$i]["video_size"]); ?>
            </td>
            <td onclick="DoNav('<?php echo $url; ?>');">
                <?php echo strTime($result_videos[$i]["video_length"]); ?>
            </td>
            <td>
                <form name="myform" action="<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>" method="POST">
                <input type="checkbox" name="radioselect" title="Mark this video for deletion"/>
                <input type="hidden" name="video_name" value="<?php echo $result_videos[$i]["video_name"]; ?>" />
                </form>
            </td>
        </tr>
...

请注意,我遍历并从服务器填充表,但标题显然没有循环。我曾经把删除按钮放在表格和表格的每一行。但是现在因为我想要多删除,我在每一行创建复选框并将删除按钮放在标题中。我还应该注意video_name至关重要,因此我知道要删除哪些视频。

但这就是问题所在,因为我没有在表单中提交(删除)(在循环中)我无法处理这些复选框。相反,我只有删除按钮任何人都可以提出更好的方法吗?

2 个答案:

答案 0 :(得分:1)

一种解决方案是将视频的ID放在其删除复选框的名称中。然后,您可以阅读收到的复选框并解析其中的视频名称。

答案 1 :(得分:1)

表单应该围绕整个表格,而不是在名称的隐藏输入中,您可以在复选框的名称中使用它:

<input type="checkbox" name="radioselect[<?php echo $result_videos[$i]['video_name']; ?>]" />

然后,在接收POST请求的PHP脚本中,$_POST['radioselect']将是一个数组。然后您可以使用:

foreach(array_keys($_POST['radioselect']) as $k) { ... }

这将循环选中所选复选框。您在video_name中获得了$k,您可以像删除一样来处理它。