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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос с методом POST

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
nomak_suntown
Отправлено: 21 Июля, 2013 - 03:50:58
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)

[+]


Есть скрипт, в котором много кнопок, все методом 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']); }

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



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Конечно же есть способ намного проще и понятнее.
А главное - он еще и правильный.
Все встанет на свои места после моего объяснения ниже:

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

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

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



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)





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

даже используя ajax? Закатив глазки


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Июля, 2013 - 08:20:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




soffrick пишет:
даже?
Даже.
Чем аякс-шмакс отличается от обычного запроса с точки зрения сервера?
Я говорю конкретно за тип запроса, а кто и как его совершает - это уже другая тема.
 
 Top
soffrick
Отправлено: 21 Июля, 2013 - 08:32:31
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




DeepVarvar
GET кешируется ...
значит нужно для того скрипта, к которому обращается ajax запретить кеширование?( если оно того требует )

(Отредактировано автором: 21 Июля, 2013 - 08:48:24)



-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Июля, 2013 - 10:32:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




soffrick пишет:
GET кешируется ...


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

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

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



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




DeepVarvar пишет:
надо не на сервере костыли лепить

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

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

Здорово

Спасибо за ответы

(Отредактировано автором: 21 Июля, 2013 - 10:55:16)



-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Июля, 2013 - 11:47:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




soffrick, прям задарил меня плюсами.. Выпьем!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB