Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Удаление строки из таблицы БД нажатием на кнопку. [2]
Форумы портала PHP.SU » PHP » Программирование на PHP » Удаление строки из таблицы БД нажатием на кнопку.

Страниц (2): « 1 [2]
 

16. born - 10 Августа, 2010 - 02:42:21 - перейти к сообщению
смотрел, в html с айдишниками все правильно, выводятся с увеличением в аттрибут value как и в базе.
Где в моей логике ошибка: нажимаю на одну из кнопок, происходит отправка данных на сервер, у сервера создается глобальный массив $_POST['delid'],а так как все hidden поля у нас с одним именем, то он как бы поочереди переприсвоит все значения этого параметра и останется с последним
17. JustUserR - 10 Августа, 2010 - 02:52:18 - перейти к сообщению
born пишет:
Где в моей логике ошибка: нажимаю на одну из кнопок, происходит отправка данных на сервер, у сервера создается глобальный массив $_POST['delid'],а так как все hidden поля у нас с одним именем, то он как бы поочереди переприсвоит все значения этого параметра и останется с последним
Если у вас имеется множество независимых HTML-форм состоящих только из скрытого поле с заданным значениием идентификатора и кнопкой подачи запроса - но при нажатии на нее будет осуществляться передача только одного текущего значения из скрытого поле - поскольку элементы всех форм независимы между собой Если же у вас имеется одна общая HTML-форма то можно несколько модифицировать вашу схему - а именно выводить набор submit-кнопок с разными шаблонными value-значениями - которые будут передаваться PHP-скрипту и она основе которых он будет получать идентификатор для удаления
18. born - 10 Августа, 2010 - 03:02:12 - перейти к сообщению
Вы просто Гений! Сделал по первому способу, все работает, а я дня 3 голову ломал.
Спасибо. Если Вам не сложно, напишите пример второго метода.
19. JustUserR - 11 Августа, 2010 - 00:34:33 - перейти к сообщению
born пишет:
Вы просто Гений! Сделал по первому способу, все работает, а я дня 3 голову ломал.
Спасибо! Когда вы первоначально приводили пример сгенерированного HTML-кода с указаными подстановочными значениями - то я подумал что у вас и так имеется схема с использованием множества форм - но когда вы привели предполагаемое описание процесса передачи выбранной информации из формы - то стало ясно что именно является причиной ошибки Дело в том что при отправке некоторой HTML-формы все содержащиеся в ее текстовых полях и элементах одиночного выбора данные - передаются в последовательном порядке в некоторой строке запроса передаче данных из некоторой HTML-форму - и соответственно если у вас встречается несколько элементов формы с одинаковым name-именем то каждое из них будет передано в строку запроса - но при ее разборе со стороны PHP-скрипта значения будут сохраняться в одну и ту же переменную - и соответственно в конечном итоге останется доступным только последнее из них При использовани же элементов множественного выбора их передача зависит от наличия конкретных указанных пунктов - например среди группы checkbox-флакжков с одикановыми именем будут переданы только выбранные из них - и если не было выбрано ни одного элемента то соответственно параметра с данными именем в строке запроса не будет Для удобства отсылки элементов с одинаковым именем можно применять конструкцию с квардатными скобками в конце параметра name - с точки зрения HTTP-запроса это не влечет никакой разницы - но обрабатывающий PHP-скрипт в свою очередь будет не перезаписывать последовательно поступающие значения а сохранять их в массив
born пишет:
Спасибо. Если Вам не сложно, напишите пример второго метода.
Пожалуйста! Существует достаточно большое число методов с помощью которых можно осуществить решение вашей задачи - к примеру можно использовать приведенный выше метод с checkbox-флажками и благодаря нему реализовать возможность множественного удаления элементов из БД Тем не менее в предыдущем сообщении предполагался метод - в котором для каждого из удаляемых элементов генерируются submit-кнопки типа <input type="submit" name="del" value="Удалить N строку"> - и в таком случае при нажатии соответствующей кнопки в PHP-скрипт будет поступать пара ассоциированных значений типа del=Удалить N строку - и на основе разбора value-значения можно получить номер требуемого элемента для удаления
20. born - 11 Августа, 2010 - 00:47:13 - перейти к сообщению
Огромное Спасибо!
JustUserR пишет:
Для удобства отсылки элементов с одинаковым именем можно применять конструкцию с квардатными скобками в конце параметра name - с точки зрения HTTP-запроса это не влечет никакой разницы - но обрабатывающий PHP-скрипт в свою очередь будет не перезаписывать последовательно поступающие значения а сохранять их в массив

но чтобы вытащить из массива нужный элемент индекс тоже нужно где-то запоминать
21. JustUserR - 11 Августа, 2010 - 02:01:40 - перейти к сообщению
born пишет:
Огромное Спасибо!
Но чтобы вытащить из массива нужный элемент индекс тоже нужно где-то запоминать
Пожалуйста! Если вы используете схему при которой пользователю предоставляется набор checkbox-флажков которые он должен отметить для выбора соответствующих удаляемых элементов - то при отпраке содержащей их формы в строке запроса будут указаны имена и значение только тех из них которые были выбраны Поэтому в данном случае все переданные значения обозначающие индексы заданных элементов - которые оказалсь в соответствующем массиве должны подлежать удалению

 

Powered by ExBB FM 1.0 RC1