我有一个浏览photos
的网页,每个photo
都位于album
。
在页面顶部,我有一个albums
选择框,分别带有album_id
和album_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
,则会点击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
无论如何我可以从查询字符串中删除它吗?
或者有人能想出更好的方法来实现这个目标吗?
我想从查询字符串中删除它,因为它实际上不需要在那里。没用了
答案 0 :(得分:5)
如果删除按钮name
的{{1}}属性,则可以从请求数组中删除提交按钮。
因此,在您的情况下,您将不得不修改以下内容:
<input>
成为下面的一个:
<input type="submit" name="change-album" value="Select Album" />
答案 1 :(得分:1)
删除名称属性:
<input type="submit" value="Select Album" />
答案 2 :(得分: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>
答案 3 :(得分:1)
如果您不需要脚本中任何位置的按钮名称,那么就不要为提交按钮指定名称属性。
<input type="submit" value="Select Album" />
如果您确实需要脚本的某些部分,但想丢弃它,以便在完成后不会将其存储在数据库中,那么只需取消设置即可。
unset ($_GET ['change-album']);