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 :: Версия для печати :: Вопрос с методом POST
Форумы портала PHP.SU » » Вопросы новичков » Вопрос с методом POST

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

1. nomak_suntown - 21 Июля, 2013 - 03:50:58 - перейти к сообщению
Есть скрипт, в котором много кнопок, все методом POST.

В скрипте, если нажать на кнопку "Просмотр", то циклом выводится список из нескольких строк из БД. На против каждой строки-кнопка удалить. Так вот, эта кнопка тоже методом POST. Если все это было бы без кнопки "Просмотр", то при удалении записей, они бы просто удалялись по одной и это было бы видно, т.е. к примеру 5 записей, нажал удалить одну, то безо всяких обновлений в браузере видно оставшиеся 4ре строки. т.е. все динамично. Но если в скрипте 2 поста, то после удаления просто отсылает на скрипт.php где ничего не выводится, а чтобы выводилось, сново нужно жать на "Просмотр".

Попробовал реализовать при помощи header:location :

if(isset($_POST['delete'])) { mysql_query('DELETE FROM sounds WHERE id ='.(int)$_POST['id'].' LIMIT 1');
header('Location: '.$_POST['mygroups']); }

По идее, после нажатия на кнопку удалить, нас отсылает на кнопку просмотр, и в итоге все динамично, можно удалять все записи из БД без обновления в браузере, но этого всеравно не происходит. Как реализовать сие чудо? Полюбому есть способ намного проще))
2. DeepVarvar - 21 Июля, 2013 - 04:30:14 - перейти к сообщению
Конечно же есть способ намного проще и понятнее.
А главное - он еще и правильный.
Все встанет на свои места после моего объяснения ниже:

У http-протокола есть несколько различных типов запросов клиента.
Я не буду описывать все, а покажу только самые самые.

1) HEAD - получение ТОЛЬКО ЗАГОЛОВКОВ!
2) GET - получение заголовков и данных (текста страницы например), ТОЛЬКО ПОЛУЧЕНИЕ!
3) POST - изменение данных посредством передачи от клиента некоторой информации на сервер. После обработки данных, сервер абсолютно вправе ничего не возвращать, а может и вернуть что-нибудь, например коротенький отчет о проделанной работе. Ключевая суть POST-запроса - изменение данных на сервере.

Значит!
Никогда!
Меня все читают!?
НИКОГДА не используйте POST для тупого получения данных с сервера!
Для этого есть GET!
3. soffrick - 21 Июля, 2013 - 07:29:48 - перейти к сообщению

сори за оффтоп
DeepVarvar пишет:
НИКОГДА не используйте POST для тупого получения данных с сервера!

даже используя ajax? Закатив глазки
4. DeepVarvar - 21 Июля, 2013 - 08:20:14 - перейти к сообщению
soffrick пишет:
даже?
Даже.
Чем аякс-шмакс отличается от обычного запроса с точки зрения сервера?
Я говорю конкретно за тип запроса, а кто и как его совершает - это уже другая тема.
5. soffrick - 21 Июля, 2013 - 08:32:31 - перейти к сообщению
DeepVarvar
GET кешируется ...
значит нужно для того скрипта, к которому обращается ajax запретить кеширование?( если оно того требует )
6. DeepVarvar - 21 Июля, 2013 - 10:32:36 - перейти к сообщению
soffrick пишет:
GET кешируется ...


Ну не сервер же GET кеширует, верно?
Ага - клиент.
Тогда какие претензии к серверу?
Он каждый раз честно все отдает.

Т.е. надо не на сервере костыли лепить из заголовков и прочего, а на клиенте, дабы обойти проблему кеширования на клиенте - приклеивать каждый раз уникальное значение не нужного на сервере параметра.

В jquery есть соответствующий параметр у объекта $.ajax чтобы не кешировало.
И отправляет он, ё-маё, вот такого вида суффикс в GET'е: &_=123618768
7. soffrick - 21 Июля, 2013 - 10:54:47 - перейти к сообщению
DeepVarvar пишет:
надо не на сервере костыли лепить

Моя частая проблема ... Улыбка

DeepVarvar пишет:
В jquery есть соответствующий параметр у объекта $.ajax чтобы не кешировало.
И отправляет он, ё-маё, вот такого вида суффикс в GET'е: &_=123618768

Здорово

Спасибо за ответы
8. DeepVarvar - 21 Июля, 2013 - 11:47:02 - перейти к сообщению
soffrick, прям задарил меня плюсами.. Выпьем!

 

Powered by ExBB FM 1.0 RC1