0

我已经完成了处理复选框的解决方案,并认为我了解我需要做什么,但是我有一个问题,我将删除按钮放在这段代码中。这是我的桌子:

<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很重要,所以我知道要删除哪些视频。

但这就是问题所在,因为我在表单中没有提交(删除)(即在循环中),所以我无法处理这些复选框。相反,我只有删除按钮 谁能建议一个更好的方法来做到这一点?

4

2 回答 2

1

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

于 2012-04-24T20:00:12.667 回答
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你可以像处理一次删除一样处理它。

于 2012-04-24T20:01:05.133 回答