Проблемы в работе отправки формы PHP с получением данных

#php #html #forms

#php #HTML #формы

Вопрос:

Я работаю с формами PHP. Открывающий тег формы выглядит следующим образом:

 <form name="adv_search_form" action="<?php echo $targetpage; ?>" method="GET">
  

Это сгенерировало следующий HTML:

 <form name="adv_search_form" action="index.php?amp;amp;rel=common_listingamp;amp;module=companyamp;amp;sort_option=amp;amp;search_option=amp;amp;show_max_row=15" method="GET">
  

Когда я отправляю эту форму, я попадаю на URL:

 http://localhost/projectcode12may2014/ampanel/index.php?field%5B]=broker_nameamp;adv_operation%5B]=LIKEamp;value%5B]=amp;query_type%5B]=ANDamp;submit=Submit
  

Но я хочу, чтобы

?field[]=broker_nameamp;adv_operation[]=LIKEamp;value[]=amp;query_type[]=ANDamp;submit=Submit

должно быть добавлено к URL-адресу действия на целевой странице. Может кто-нибудь предложить какой-нибудь хороший метод для этого? Заранее спасибо.

Ответ №1:

Если вы используете method="get" параметры в действии, они перезаписываются. Будет передано только то, что находится в from .

Вам нужно добавить скрытые поля для всех этих значений. Например:

 <input type="hidden" name="module" value="company" />
  

Ответ №2:

Это ваши данные из.

method="get" У вас есть тег формы. Это означает, что данные формы объединяются с URL. Используйте method="post" , чтобы отправлять данные формы в виде POST-запроса и поддерживать ваш URI в чистоте.

Так что измените эту строку

 <form name="adv_search_form" action="<?php echo $targetpage; ?>" method="GET">
  

к этому

 <form name="adv_search_form" action="<?php echo $targetpage; ?>" method="post">
  

Затем вы можете получить доступ к данным своей формы в PHP с помощью глобального $_POST var, который содержит массив с отправленными данными.

Ответ №3:

Это нормальное поведение. Используя метод GET, удалите все параметры, указанные непосредственно в атрибуте action.

Вместо этого используйте метод POST или переместите параметры из атрибута action формы в поля ввода с типом =»hidden».