2012-08-07 66 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']); 
相關問題