是否有任何方法可以从GET请求中删除提交按钮


is there any way to remove the submit button from a GET request?

我有一个查看photos的页面,每个photo都在一个album中。

在页面顶部,我有一个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,则AND THEN会单击photo。他们将看到这张照片的放大版。但是,如果用户在浏览器上按BACK,它会显示FORM MUST BE RE-SENT。这是因为该页面上的最后一个请求发布了获取照片的album_id

我决定使用GET。因此,当用户将BACK转到该页面时,album_id在查询字符串中!没有表单重新发送!耶!

然而,显然使用GET也会在querystring中发送提交按钮!

所以我最终得到:

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

我是否可以将其从查询字符串中删除?

或者有人能想出更好的方法来实现这一点吗?

我想从查询字符串中删除它,因为它实际上不需要在那里。其无用的

如果删除按钮<input>name属性,则可以从请求数组中删除提交按钮。

因此,在您的情况下,您将不得不修改以下内容:

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

改为下面的那个:

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

删除名称属性:

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

提交表单时,它会被转换为键值对,因此如果没有名称或值,则不会发送元素:

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

如果在脚本中的任何位置都不需要按钮的名称,那么就不要给提交按钮提供名称属性。

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

如果你在脚本的某个部分确实需要它,但想丢弃它,这样当你完成它时它就不会存储在数据库中,那么就取消设置它。

unset ($_GET ['change-album']);