есть таблица 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> Имя клиента </td><td> Телефон </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'); ?>
ммм. айди записи это строка 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. как привязать чекбокс к строчке? по айди? как?
лучше всего по айди. $table .= '<td><input type="checkbox" name="checkboxes['.$row['id'].']" /></td>'; И смотреть что получится в $_POST['checkboxes'];
я делаю примерно как в phpMyAdmin 1)в первой колонке - вывод checkbox-для текущей строки 2)все checkbox-ы помещаю в форму 3)название для checkbox-в равно selectrow[] PHP: //проверка есть ли нажатие кнопки "remove" и отмечен ли хотя бы один checkbox if(isset($_POST['remove']) and isset($_POST['selectrow'])) { foreach($_POST['selectrow'] as $primary_key) { $q="delete from klient where поле первичного ключа='$primary_key'"; pg_query($q); } } $o=array(); $o[]= "<table cellpadding=3 cellspacing=3><tr><td>Удалить</td><td> Имя клиента </td><td> Телефон </td></tr>"; $o[]="<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">"; while ($row = pg_fetch_assoc($result)) { $primary_key=$row['поле первичного ключа']; $o[]="<tr>"; $o[]="<td>"; $o[]="<input type=checkbox name=\"selectrow[]\" value=\"$primary_key\" >"; $o[]="</td>"; $o[]= "<td>"; $o[]=$row['kname']; $o[]="</td>"; $o[]= "<td>"; $o[]=$row['tel']; $o[]="</td>"; $o[]="</tr>"; } $o[]="<input type=\"submit\" name=\"remove\" value=\"Óäàëèòü\">"; $o[]="</form>"; $o[]="</table>"; print implode('',$o);