обработка проверенных флажков PHP - PullRequest
1 голос
/ 30 марта 2011

У меня есть таблица, которая берет данные из базы данных примерно так: (это не форма)

if (mysql_num_rows($result)) {
        echo "<table id='logs' border='1' cellspacing='0' width='62%'>";
        echo "<tr>";
        echo "<th width='15%'>Time Registered</th>";
        echo "<th width='15%'>Username</th>";
        echo "<th width='15%'>Password</th>";
        echo "<th width='15%'>IP Address</th>";
        echo "<th width='2%'><a href=\"#\" onclick=\"checkAll(this);\">Mark</a></th>";
        echo "<th width='2%'>Delete</th>";

        echo "</tr>";
        while ($row = mysql_fetch_row($result))
        {
            echo "<tr>";
            echo ("<p><td>$row[2]</td><td>$row[0]</td><td>$row[1]</td><td><i>$row[3]</i></td><td><center><input type=\"checkbox\" name=\"mark[]\"/></center></td><td><a href=\"delete.php?time=$row[2]&user=$row[0]&pass=$row[1]&ip=$row[3]\"><center>[x]</center></a></td></p>");
            echo "</tr>";
        }
        echo "</table>";
}

Деталь <input type=\"checkbox\" name=\"mark[]\"/> - это флажок. Как я могу найти и обработать отмеченные флажки?

if(mark[$checked]) {
     //delete data from database if row checked
}

Ответы [ 3 ]

3 голосов
/ 30 марта 2011
foreach($_REQUEST['mark'] as $value){
    echo "$value was selected\n <br />";
}

, если вы хотите узнать, какой из них не был выбран, сохраните все возможные выборки в массив, просмотрите этот массив и сделайте что-то вроде

foreach($poss_select as $key=>$val){
    if(!in_array($val,$_REQUEST['mark']){
        $not_selected[$key] = $value;
    }else{
        deleteRow($value);
    }
} 
2 голосов
/ 30 марта 2011

$_REQUEST[ 'mark' ] будет массивом всех отмеченных флажков.

0 голосов
/ 30 марта 2011

Чтобы передать эти флажки в PHP для обработки, вам понадобится AJAX или форма для отправки.

Но прежде чем вы сможете это сделать, вам необходимо включить атрибут значения в эти флажки. В настоящее время $ _POST ['mark'] (если вы использовали POST для отправки формы) будет массивом из проверенных флажков (и только проверенных) на основе 0.

Я бы рекомендовал вывести идентификатор пользователя в качестве значения флажка, чтобы помочь идентифицировать помеченных пользователей.

Тогда вы могли бы сделать

foreach ($_POST['mark'] as $marked) {
    // $marked would contain the value attribute of the checked checkboxes
    // and you could run a SQL query for each value of $marked.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...