|
|
|
| Привет всем, Заранее спасибо за любые мысли
Выводится табличка в каждой строке есть столбец, иконка, при нажатии на которую выводится диалоговое окно, и если нажать то происходит удаление строки из базы данных
Подскажите можно ли так обрабатывать форму и может есть способ получше.
Вот форма
$html = $html.'<form name="form1" method="post" action="адрес 111">';
формируется таблица,
первая трока, а справа значек удаление
вторая трока а справа значек удаление
... а справа значек удаления формируется следующим образом
$html = $html."<td><a onClick= 'return delete()' href='адрес 111'><img src='img/remove.gif' border='0'></a></td>";
/*Возможно ошибка с кавычками*/
$html = $html.'</form>';
$html = $html.'<script>function delete(){
var case;
case = confirm("Удалить строку?");
if (case)
'.А вот здесь по моему разумению происходит удаление из базы данных с помощью php и это как-то надо состыковать, а еще сюда должен передаваться уникальный идентификатор для удаления именно той записи.'
return true;
else return false;
return false;
}</script>'; | |
|
|
|
|
|
|
|
для: Альтер
(14.07.2009 в 11:37)
| | Есть форма, в которой каждому полю с информацией соответствует чекбокс, атрибут value которого равен ID записи в базе. Имена этих чекбоксов отображены как массив, например, dl[]. Получая на сервере массив $_POST['dl'] (или $_GET), формируете строку запроса для удаления: "DELETE FROM `table` WHERE `id` IN(".implode(",", $_POST['dl']).")" | |
|
|
|
|
|
|
|
для: sim5
(14.07.2009 в 12:39)
| | в таком это простор для инъекции.
Ну и желание js-confirm как-то не вяжется с пакетным удалением множества строк. | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2009 в 12:41)
| | Массив можно предварительно и "вылечить", сформировав запрос вне самой строки запроса :) Вот потому как (не confirm, это пусть спрашивает), а картинка на удаление, и написал, что в принципе все можно упростить. Понравится, тогда и обезопасить мона. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2009 в 12:49)
| | >Массив можно предварительно и "вылечить",
это да. Собственно можно и в строке. implode(',', array_map('intval', $_POST['id'])) | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2009 в 13:00)
| | Конечно можно. Ждем резюме автора :) | |
|
|
|
|
|
|
|
для: sim5
(14.07.2009 в 13:07)
| | Я не совсем понял, из-за малого опыта, уж простите, Вы предлагаете сделать ряд чекбоксов, если допустим я выделил 3 чекбокса/строки далее сделал и нажал кнопку удалить, да?, то функция confirm отпадает? Если мое предположение верно, то в этой форме будут присутствовать две кнопки самбит, первая это удалить, вторая сохранить (для других действий). Тогда что получается, опять же по незнанию, у меня будут отправятся на сервер как переменные для кнопки сохранить, так и для кнопки удалить? | |
|
|
|
|
|
|
|
для: Альтер
(14.07.2009 в 13:15)
| | Что значит отпадает confirm? Confirm - это JS-метод, который выводит запрос на подтверждения действий пользователя, и никоим образом не занимается удалением чего бы то нибыло, а тем более в базе на сервере. Почему же его убирать, делайте запрос на подтвеждение, и если он будет положительный, то соответствующий чекбокс отмечайте, а если отрицательный, то оставить неотмеченным.
Зачем вам две кнопки submit? Достаточно и одной, например со значением "Сохранить", при этом строки у которых будет отмечен чекбокс на удаление (соответствующий массив не будет пуст) удаляются из базы, а остальные обновляются. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2009 в 13:46)
| | Про confirm я знаю, просто не знал что его можно и для чекборов применять, а идея с одной самбит отличная, спасибо, сделаю код, опубликую )) | |
|
|
|
|
|
|
|
для: Альтер
(14.07.2009 в 13:51)
| | Сonfirm не для "чекборов", оно для confirm :) | |
|
|
|