0

次の問題に悩まされています。テキストを含むテーブルがあり、それぞれの横にチェックボックスがあります。ボタンのようなリンク「選択を削除」もあります。私が望むのは、ユーザーがチェックボックスを介して多くのテキストを選択し、選択したものをまとめて削除できるようにすることです。問題は、フォームを使用したくないため、$_POST を使用できないため、$_SESSION を使用する必要があることです。以前にセッションを使用したことがありますが、それらをチェックボックスと組み合わせる方法がわかりません..

いくつかのヒントや例を教えていただければ、とても感謝しています..

手がかりを与えるために私のコードの一部..

view_texts.php

<?php 

        $sql="SELECT * FROM texts";
        $res=mysql_query($sql) or die(mysql_error());
        $i=1;
        while($row=mysql_fetch_array($res))
            {
     ?>

        <tr>
            <td><input type="checkbox" name="check[]" value="<?php echo $row['id']?>"/></td>
            <td><?php echo $i; ?></td>
            <td><?php echo $row['title']; ?></td>
            <td><?php echo substr($row['description'],0,20); ?></td>
            <td><?php echo $row['page_id']; ?></td>

            <td><a href="edit_text.php?id=<?php echo $row['id'];?>"><img src="images/user_edit.png" alt="" title="" border="0" />                   </a></td>
            <td><a href="delete_text.php?id=<?php echo $row['id'];?>" class="ask"><img src="images/trash.png" alt="" 
            title="" border="0" /></a></td>
        </tr>
      <?php
       $i++;
            }
      ?> 
<a href="delete_selected_texts.php" class="bt_red"><span class="bt_red_lft"></span><strong>Διαγραφή επιλεγμένων</strong><span class="bt_red_r"></span></a>

delete_selected_texts.php

<?php
        if (isset($_POST['check']))
        {
            foreach ($_POST['check'] as $value)
                {
                    $sql = "DELETE FROM texts WHERE id =".$value;
                    mysql_query ($sql);

                }

        }  
?>

これは、フォーム タグ内のテキスト ボックスに使用するコードです。

4

1 に答える 1

0

なんらかの理由でフォームを使用しないことに固執している場合は、代わりに javascript を使用して POST で AJAX リクエストを送信することを検討しています。ターゲットにする要素を選択するプロセスが大幅に簡素化されるため、jQuery の使用をお勧めします。

それは次のようになります...

$(document).function(){
    $(":checkbox").click(function(e){
              var deleteItem = $("input:id").val();
              $.ajax({
                      type: "POST";
                      data: deleteItem;
                      url: "path/to/a/file.php";
                      success: function(data){
                              if (data="success"){
                                  $(this).css("backgroundcolor", "blue");
                              } else {
                                  alert("failed to find item");
                              }
                          }
          });
}

次に、Ajax リクエストがデータを送信するファイルが必要です。このファイルは、削除するために delete_selected_texts.php が呼び出されたときに保存され、呼び出される、そのリストからアイテムを削除/削除するためのアイテムのリストを作成します。 .

注: 上記の jQuery はチェックされていません。そこにいくつかのエラーがある可能性が非常に高いです。

于 2012-04-10T15:55:14.440 に答える