За последние 24 часа нас посетили 17884 программиста и 1600 роботов. Сейчас ищут 857 программистов ...

построчное удаление из таблицы, chekbox, помогите)

Тема в разделе "PHP и базы данных", создана пользователем cor2oe, 15 дек 2010.

  1. cor2oe

    cor2oe Активный пользователь

    С нами с:
    15 дек 2010
    Сообщения:
    2
    Симпатии:
    0
    есть таблица klient. в ней 3 столбца kid (serial), kname (char), tel (char). как на пхп сделать возможность построчного удаления? я думаю что по идее справа от каждой строчки выводимой таблички должен появляться chekbox. далее мы ставим галочку, и жмем на кнопку удаления. и отмеченные строчки удаляються. но как это сделать? как сделать что бы чекбоксы появлялись автоматом по количеству строк?

    вывод таблички.


    <div class="table" style="float:left; padding:0 0 0 275px;">
    <?php
    // btn SELECT
    if (isset($_POST['view_klient'])){
    $sql = "select kname, tel from klient";

    $result = pg_query($sql);

    print"<pre>"; print_r($row); print"</pre>";

    $table .= "<table colspan=3 rowspan=3 cellpadding=3 cellspacing=3>\n
    <tr><td>&nbsp;&nbsp;Имя клиента&nbsp;&nbsp;</td><td>&nbsp;&nbsp;Телефон&nbsp;&nbsp;</td></tr>";
    while ($row = pg_fetch_assoc($result)){
    $table .= "<tr>\n";

    $table .= "<td>".$row['kname']."</td>\n";
    $table .= "<td>".$row['tel']."</td>\n";

    $table .= "</tr>\n";
    }

    $table .= "</table>\n";
    echo $table;
    }
    ?>
    </div>

    чекбокс

    <form action="klienti.php" method="post">
    <input type="checkbox" name="checkme" checked="checked" />

    <?php
    function checkbox_verify($_name)
    {
    $result=0;
    if (isset($_REQUEST[$_name]))
    { if ($_REQUEST[$_name]=='on') { $result=1; } else { $result=0; }
    }
    return $result;
    }

    echo checkbox_verify('checkme');
    ?>
     
  2. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    можно чекбоксу дать имя=id записи
     
  3. cor2oe

    cor2oe Активный пользователь

    С нами с:
    15 дек 2010
    Сообщения:
    2
    Симпатии:
    0
    ммм. айди записи это строка kid в табличке она специально не выводиться. можно в принципе. но как? pgsql дает нумерацию 1,2,3,4... сейчас где то уже до 30ти дошел. как присвоить? в принципе, можно сделать третью колонку

    $table .= "<td class='segment'>".$row['kname']."</td>\n";
    $table .= "<td class='segment'>".$row['tel']."</td>\n";
    $table .= "<td class='segment'>".$row['....место для чекбокса....']."</td>\n";


    но это ведь все функция идет. а чекбокс это форма. я не могу в ней открыть пхп тэг и вбить туда форму чекбокса. как это сделать? т.е.

    проблема 1. как в третью (пустую) колонку поместить чекбокс?
    проблема 2. как привязать чекбокс к строчке? по айди? как?
     
  4. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    лучше всего по айди.
    $table .= '<td><input type="checkbox" name="checkboxes['.$row['id'].']" /></td>';

    И смотреть что получится в $_POST['checkboxes'];
     
  5. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    я делаю примерно как в phpMyAdmin

    1)в первой колонке - вывод checkbox-для текущей строки
    2)все checkbox-ы помещаю в форму
    3)название для checkbox-в равно selectrow[]

    PHP:
    1.  
    2. //проверка есть ли нажатие кнопки "remove" и отмечен ли хотя бы один checkbox
    3. if(isset($_POST['remove']) and isset($_POST['selectrow']))
    4. {
    5.     foreach($_POST['selectrow'] as $primary_key)
    6.     {
    7.         $q="delete from klient where поле первичного ключа='$primary_key'";
    8.         pg_query($q);
    9.     }
    10. }
    11. $o=array();
    12. $o[]= "<table cellpadding=3 cellspacing=3><tr><td>Удалить</td><td> Имя клиента  </td><td>  Телефон  </td></tr>";
    13. $o[]="<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">";
    14. while ($row = pg_fetch_assoc($result))
    15. {
    16.     $primary_key=$row['поле первичного ключа'];
    17.     $o[]="<tr>";
    18.     $o[]="<td>";
    19.     $o[]="<input type=checkbox name=\"selectrow[]\"   value=\"$primary_key\" >";
    20.     $o[]="</td>";
    21.     $o[]= "<td>";
    22.     $o[]=$row['kname'];
    23.     $o[]="</td>";
    24.     $o[]= "<td>";
    25.     $o[]=$row['tel'];
    26.     $o[]="</td>";
    27.     $o[]="</tr>";
    28. }
    29. $o[]="<input type=\"submit\" name=\"remove\" value=\"Óäàëèòü\">";
    30. $o[]="</form>";
    31. $o[]="</table>";
    32. print implode('',$o);
    33.