2012-08-07 69 views
2

我有一个页面,意见photos,每个photo是在album有什么办法从GET请求中删除提交按钮?

在页面顶部,我有一个albums选择框,分别为album_idalbum_name

<form action="change-album.php" method="get"> 
    <table> 
     <tr> 
      <td><label>Select Album</label></td> 
      <td><select name="album_id"><?=$albums_str?></select></td> 
      <td><input type="submit" name="change-album" value="Select Album" /></td> 
     </tr> 
    </table> 
</form> 

默认为uncategorised photos在页面加载,然后用户可以选择自己的专辑,然后按submit,从该专辑返回的照片。

本表格使用POST。

但是,如果用户选择album,则ANDENEN单击photo。他们会看到一个大版本的照片。但是,如果用户在浏览器上按下BACK,则表示FORM MUST BE RE-SENT。这是因为该页面上的最后一个请求发布了album_id以获取照片。

我决定使用GET。因此,当用户去BACK到该页面时,album_id在查询字符串中!没有形式重新发送! YAAY!

但是,显然使用GET也会发送查询字符串中的提交按钮!

所以我最终得到:

localhost/admin/view-photos?album_id=1&change-album=Select+Album 

反正我有可以从查询字符串中删除此?

或者任何人都可以想出更好的方法来实现这一目标吗?

我想从查询字符串中删除它,因为它并不需要在那里。其用武之地

+2

不要命名它!简单 – Waygood 2012-08-07 09:08:29

+0

您可以使用POST,但脚本不应该输出并重定向到另一个页面进行显示。这不会给你重新提交表单通知,因为提交表单的页面没有被缓存,也不会出现在历史记录中 – Waygood 2012-08-07 09:11:48

回答

5

您可以删除请求数组,如果你删除的按钮<input>name属性提交按钮。

所以你的情况,你将不得不修改如下:

<input type="submit" name="change-album" value="Select Album" /> 

是一个低于代替:

<input type="submit" value="Select Album" /> 
1

删除name属性:

<input type="submit" value="Select Album" /> 
1

当提交表单时,它被转换成键 - 值对,所以如果没有名称或没有值,则元素不发送:

<form action="change-album.php" method="get"> 
    <table> 
     <tr> 
      <td><label>Select Album</label></td> 
      <td><select name="album_id"><?=$albums_str?></select></td> 
      <td><input type="submit" value="Select Album" /></td> 
     </tr> 
    </table> 
</form> 
1

如果你不需要bu tton的名字在脚本的任何地方,只是不要给提交按钮一个名称属性。

<input type="submit" value="Select Album" /> 

如果你需要它为你的脚本的某一部分,但要放弃它,所以它不会被存储在数据库中,当你用它做,然后就取消它。

unset ($_GET ['change-album']); 
相关问题