Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как лучше обрабатывать событие
 
 автор: Альтер   (14.07.2009 в 11:37)   письмо автору
 
 

Привет всем, Заранее спасибо за любые мысли

Выводится табличка в каждой строке есть столбец, иконка, при нажатии на которую выводится диалоговое окно, и если нажать то происходит удаление строки из базы данных
Подскажите можно ли так обрабатывать форму и может есть способ получше.

Вот форма

$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>';

  Ответить  
 
 автор: sim5   (14.07.2009 в 12:39)   письмо автору
 
   для: Альтер   (14.07.2009 в 11:37)
 

Есть форма, в которой каждому полю с информацией соответствует чекбокс, атрибут value которого равен ID записи в базе. Имена этих чекбоксов отображены как массив, например, dl[]. Получая на сервере массив $_POST['dl'] (или $_GET), формируете строку запроса для удаления: "DELETE FROM `table` WHERE `id` IN(".implode(",", $_POST['dl']).")"

  Ответить  
 
 автор: Trianon   (14.07.2009 в 12:41)   письмо автору
 
   для: sim5   (14.07.2009 в 12:39)
 

в таком это простор для инъекции.
Ну и желание js-confirm как-то не вяжется с пакетным удалением множества строк.

  Ответить  
 
 автор: sim5   (14.07.2009 в 12:49)   письмо автору
 
   для: Trianon   (14.07.2009 в 12:41)
 

Массив можно предварительно и "вылечить", сформировав запрос вне самой строки запроса :) Вот потому как (не confirm, это пусть спрашивает), а картинка на удаление, и написал, что в принципе все можно упростить. Понравится, тогда и обезопасить мона.

  Ответить  
 
 автор: Trianon   (14.07.2009 в 13:00)   письмо автору
 
   для: sim5   (14.07.2009 в 12:49)
 

>Массив можно предварительно и "вылечить",
это да. Собственно можно и в строке. implode(',', array_map('intval', $_POST['id']))

  Ответить  
 
 автор: sim5   (14.07.2009 в 13:07)   письмо автору
 
   для: Trianon   (14.07.2009 в 13:00)
 

Конечно можно. Ждем резюме автора :)

  Ответить  
 
 автор: Альтер   (14.07.2009 в 13:15)   письмо автору
 
   для: sim5   (14.07.2009 в 13:07)
 

Я не совсем понял, из-за малого опыта, уж простите, Вы предлагаете сделать ряд чекбоксов, если допустим я выделил 3 чекбокса/строки далее сделал и нажал кнопку удалить, да?, то функция confirm отпадает? Если мое предположение верно, то в этой форме будут присутствовать две кнопки самбит, первая это удалить, вторая сохранить (для других действий). Тогда что получается, опять же по незнанию, у меня будут отправятся на сервер как переменные для кнопки сохранить, так и для кнопки удалить?

  Ответить  
 
 автор: sim5   (14.07.2009 в 13:46)   письмо автору
 
   для: Альтер   (14.07.2009 в 13:15)
 

Что значит отпадает confirm? Confirm - это JS-метод, который выводит запрос на подтверждения действий пользователя, и никоим образом не занимается удалением чего бы то нибыло, а тем более в базе на сервере. Почему же его убирать, делайте запрос на подтвеждение, и если он будет положительный, то соответствующий чекбокс отмечайте, а если отрицательный, то оставить неотмеченным.
Зачем вам две кнопки submit? Достаточно и одной, например со значением "Сохранить", при этом строки у которых будет отмечен чекбокс на удаление (соответствующий массив не будет пуст) удаляются из базы, а остальные обновляются.

  Ответить  
 
 автор: Альтер   (14.07.2009 в 13:51)   письмо автору
 
   для: sim5   (14.07.2009 в 13:46)
 

Про confirm я знаю, просто не знал что его можно и для чекборов применять, а идея с одной самбит отличная, спасибо, сделаю код, опубликую ))

  Ответить  
 
 автор: sim5   (14.07.2009 в 14:08)   письмо автору
 
   для: Альтер   (14.07.2009 в 13:51)
 

Сonfirm не для "чекборов", оно для confirm :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования