-1

我有一个使用 GET 方法的表单。此表单可能有大量需要更新的字段。所以有时 URL 会变得太长。所以我想我可以添加更多按钮来分别更新每组字段。

问题是,即使我添加了一个新按钮,它也会发送所有FORMs 参数。我怎样才能只发送一些参数?


编辑:我无法将 GET 替换为 POST,因为此页面不仅从自身调用,而且从其他页面调用,因此必须将其中两个参数用作 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 -->

原始 URL:用 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
. . . 

谢谢,阿塔拉。

4

2 回答 2

2

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

如果您使用 POST,那么您无需担心减少提交的项目数量。它可能看起来像是大量的项目,但就数据而言,您可能只处理最多 10K 的正在发送的数据。您页面的其余部分可能介于 50 - 300K 之间,因此它只是一小部分。

只需将表单方法更改为 POST 并在 php 接收页面中使用您需要的参数。

更新 要回答您的具体问题,如果您将每一行设为单独的表单,那么它只会在用户单击提交按钮时提交该行

于 2012-05-20T10:21:09.267 回答
1

@Atara 使用 POST 肯定会解决您的问题。因为您无法在浏览器的地址栏中点击 POST 操作。

于 2012-05-20T10:51:06.980 回答