Получаване на $_POST от няколко квадратчета за отметка

Имам 1 формуляр с няколко квадратчета за отметка в него (всяко с кода):

<input type="checkbox" name="check_list" value="<? echo $row['Report ID'] ?>">

Където $row['Report ID'] е първичен ключ в базата данни - така че всяка стойност е различна.

Как ще мога да разбера кои квадратчета са били маркирани? (Може би няколко)

Това е за система за входяща поща и имам бутон отдолу, който искам (когато бъде щракнат) да изтрие всички съобщения (идентификатори на: $row['Report ID']), които имат отметка в квадратчето's.

Решение

Задайте името на формата на check_list[] и ще имате достъп до всички полета за отметка като масив ($_POST['check_list'][]).

Ето една малка извадка, както беше поискано:


    <input type="checkbox" name="check_list[]" value="value 1">
    <input type="checkbox" name="check_list[]" value="value 2">
    <input type="checkbox" name="check_list[]" value="value 3">
    <input type="checkbox" name="check_list[]" value="value 4">
    <input type="checkbox" name="check_list[]" value="value 5">
    <input type="submit" />

<?php
if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) {
            echo $check; //echoes the value set in the HTML form for each checked checkbox.
                         //so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5.
                         //in your case, it would echo whatever $row['Report ID'] is equivalent to.
    }
}
?>
Коментари (15)

трябва да дадете съответните имена на квадратчетата за отметка:

<input type="checkbox" name="check_list[]" value="…" />

След това можете да получите достъп до всички отбелязани квадратчета с

// loop over checked checkboxes
foreach($_POST['check_list'] as $checkbox) {
   // do something
}

ps. уверете се, че правилно екранирате изхода (htmlspecialchars())

Коментари (2)
<input type="checkbox" name="check_list[<? echo $row['Report ID'] ?>]" value="<? echo $row['Report ID'] ?>">

И след публикацията можете да ги прегледате:

   if(!empty($_POST['check_list'])){
     foreach($_POST['check_list'] as $report_id){
        echo "$report_id was checked! ";
     }
   }

Или да получите определена стойност, публикувана от предишната страница:

if(isset($_POST['check_list'][$report_id])){
  echo $report_id . " was checked!<br/>";
}
Коментари (0)