2012-05-20 2 views
-1

У меня есть форма, использующая метод GET. Эта форма может содержать большое количество полей для обновления. поэтому иногда URL-адрес слишком длинный. поэтому я подумал, что могу добавить больше кнопок для каждой группы полей.Как я могу отправить только некоторые из параметров GET

Проблема, даже если добавить новую кнопку, он посылает всех параметров формы. Как я могу отправить только некоторые параметры?


Edit: Я не могу заменить GET на POST, потому что эта страница называется не только от себя, но и от других страниц, так что два из параметров должны быть использованы в качестве ГЭТ. Я попытался

if(isset($_GET['param_id1'])) { 
      $param_id1 = $_GET['param_id1']; 
     } else if(isset($_POST['param_id1'])){ 
      $param_id1 = $_POST['param_id1']; 
     } 

и внутри формы -

printf ("<form method='post' action='update_order.php'>"); // Use POST instead of GET 
printf (" <input type='hidden' name='param_id1' value='$param_id1'>"); 

, но он также не работает.

Edit 2: Это не сработало, потому что я забыл также изменить URL -

<form method='post' action='update_order_test_post.php'> 

Моя форма: [I Использование PHP]

<form method='get' action='update_me.php'> 
. . . 
<input type='submit' name='Submit' value='Update All'> <!-- Original button --> 
. . . 
<input type='submit' name='Submit' value='Update One Line'> <!-- New button --> 

Оригинальный адрес: Отправлено newLines для разрешения

http://mySite.com/update_order.php? 
&infoA=aaa 
&infoB=bbb 
&infoC=ccc 
&Submit=Update 
&param1[1]=11 
&param2[1]=21 
&param3[1]=31 
&param4[1]=41 
. . . 
&param1[2]=211 
&param2[2]=221 
&param3[2]=231 
&param4[2]=241 
. . . 
&param1[3]=3311 
&param2[3]=3321 
&param3[3]=3331 
&param4[3]=3341 
. . . 
&param1[4]=411 
&param2[4]=421 
&param3[4]=431 
&param4[4]=441 
. . . 
. . . 

Я хочу послать только следующие поля для нового URL, например, если кнопка в строке 3 была нажата:

http://mySite.com/update_order.php? 
&infoA=aaa 
&infoB=bbb 
&infoC=ccc 
&Submit=UpdateOneLine 
&param1[3]=3311 
&param2[3]=3321 
&param3[3]=3331 
&param4[3]=3341 
. . . 

Спасибо, Атар.

+5

Обновление данных должно использоваться с POST; не GET. –

+0

Любая конкретная причина, по которой вы не используете POST? – JJJ

+0

Предположим, что я заменяю GET на POST, как мне отправить только некоторые параметры? – Atara

ответ

2

Используйте POST, вот для чего это нужно.

Если вы используете POST, вам не нужно беспокоиться о сокращении количества отправленных предметов. Может показаться, что это большое количество элементов, но с точки зрения данных вы, вероятно, имеете дело только с максимальным количеством 10K отправленных данных. Остальная часть вашей страницы, вероятно, где-то между 50 - 300K, поэтому ее небольшая часть.

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

UPDATE Чтобы ответить на конкретный вопрос, хотя, если вы сделаете каждую строку отдельной формы, то это будет только представить эту строку, когда пользователь нажимает на кнопку отправить

1

использование @Atara почт определенно решить ваш проблема. Поскольку вы не можете нажать действие POST в адресной строке вашего браузера.

Смежные вопросы