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

Форум PHP

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

 

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

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

тема: GET и POST одновременно
 
 автор: Владимир22   (19.05.2011 в 22:28)   письмо автору
 
 

Друзья, подскажите
Надо при нажатии на ссылку (с GET) отправить на ту же страницу скрытые параметры методом POST.
Делаю так:
<a href="site.htm?name=ПЕТЯ" onClick="forma.submit()">Ccылка</a>
<form name="forma" action="site.htm?name=ПЕТЯ"> <input type="hidden" name="name" value="ПЕТЯ"><input type="hidden" name="nik" value="PETYA"></form>


Но POSTом ничего не передаётся. Как же только в Ссылке убираю параметр href ( и получается, что это уже и не ссылка, а надо, чтобы была именно ссылка и только с одним GET), всё работает.
Получается, что запрашиваемая страница не может принять данные из двух источников?
И как тогда быть?

  Ответить  
 
 автор: psychomc   (19.05.2011 в 22:36)   письмо автору
 
   для: Владимир22   (19.05.2011 в 22:28)
 

в теге form укажите явно method="post" и у ссылки "site.htm?name=ПЕТЯ" замените на # и будет вам счастье

*дело тут не в том, что нельзя передать данные, а в том, что после отправки формы вы осуществляете переход по ссылке по адресу, прописанному в href и поэтому не замечаете что данные были отправлены из формы. если вам все-таки нужно оставить адрес в ссылке, то тогда onClick="forma.submit()" можно заменить на onClick="forma.submit(); return false" но тогда уже смысла в ссылке как таковой нет.

так что если надо передать вместе гет и пост - параметры гет засовывайте в action формы, а форму отправляйте методом пост

  Ответить  
 
 автор: Владимир22   (19.05.2011 в 22:59)   письмо автору
 
   для: psychomc   (19.05.2011 в 22:36)
 

Спасибо - return false помогло!!!
А ещё в приёмном фале прописал:
@$name=$_POST['name'];  @$name=$_GET['name'];

Дело в том, что видимый Get нужен только для пользователя и поисковиков, а данные реально должны передаваться через POST.

А как можно обобщить приём и GET и POST одновременно (т.е. любой запрос)?
@$name=$_POST['name'];  @$name=$_GET['name'];
Чтобы короче было?

  Ответить  
 
 автор: psychomc   (19.05.2011 в 23:04)   письмо автору
 
   для: Владимир22   (19.05.2011 в 22:59)
 

$_REQUEST

  Ответить  
 
 автор: Владимир22   (19.05.2011 в 23:05)   письмо автору
 
   для: psychomc   (19.05.2011 в 23:04)
 

Да, запамятовал.
psychomc, огромнейшее СПАСИБО!!!

  Ответить  
 
 автор: psychomc   (19.05.2011 в 23:15)   письмо автору
 
   для: Владимир22   (19.05.2011 в 23:05)
 

пожалуйста

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

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