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

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、1回の削除と同じように処理できます。

于 2012-04-24T20:01:05.133 に答える