2012-05-20 72 views
-1

我有一個使用GET方法的表單。此表單可能需要更新大量的字段。所以有時URL太長。所以我想我可以添加更多按鈕來分別更新每組字段。我怎樣才能發送一些GET參數

問題,即使我添加一個新按鈕,它會發送全部 FORMs參數。我怎樣才能發送一些參數?


編輯:我不能代替GET來職位,因爲這個頁面是不是剛剛從本身,也來自其他頁面調用,所以兩個參數必須作爲GET。我試圖

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'>"); 

但它也沒有工作。

編輯2:它沒有工作,因爲我忘了也改變URL -

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

我的表格: [我使用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 --> 

原始地址:分隔線newline清除

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 
. . . 

謝謝, Atara。

+5

更新數據應與POST一起使用;不是GET。 –

+0

爲什麼你不使用POST的任何特定原因? – JJJ

+0

假設我將GET替換爲POST,如何僅發送一些參數? – Atara

回答

2

使用POST,這就是它的用途。

如果您使用POST,那麼您不必擔心減少提交的項目數量。它可能看起來像是大量的項目,但就數據而言,您可能只處理最多10K個正在發送的數據。其餘的頁面可能在50-300K之間,因此它只是一小部分。

只需將表單方法更改爲POST並在您的php接收頁面中使用您需要的參數。

UPDATE 要回答雖然您的具體問題,如果你把每行一個單獨的形式,那麼它將只提交該行,當用戶點擊提交按鈕

1

POST的@Atara使用肯定會解決你的問題。因爲您無法在瀏覽器的地址欄中執行POST操作。

相關問題