3

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

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

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

所以我最终得到:

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

无论如何我可以从查询字符串中删除它吗?

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

我想从查询字符串中删除它,因为它并不真的需要在那里。没用的

4

4 回答 4

8

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

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

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

改为下面的那个:

<input type="submit" value="Select Album" />
于 2012-08-07T09:10:20.267 回答
1

删除名称属性:

<input type="submit" value="Select Album" />
于 2012-08-07T09:10:12.533 回答
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>
于 2012-08-07T09:11:17.110 回答
1

如果您在脚本中的任何地方都不需要按钮的名称,那么就不要给提交按钮一个名称属性。

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

如果您的脚本的某些部分确实需要它,但想丢弃它,以便在完成后它不会存储在数据库中,那么只需取消设置即可。

unset ($_GET ['change-album']);
于 2012-08-07T09:13:31.123 回答