我一直在表單數據清除的地步。用戶提交表單後,數據將添加到數據庫中。它很好,直到這裏。但是,如果用戶刷新之前輸入的頁面,數據將重新輸入到數據庫中。我正在使用post方法發送數據。我沒有使用AJAX。提交數據後,整個頁面將重新加載。請幫我解決一下這個。如果在提交後有任何方式清除表單數據,那麼在刷新頁面之後,沒有數據被添加到數據庫中來回答這個問題。在PHP提交混帳後清除表單數據
回答
在我看來,表單的發佈行爲就是表單頁面本身。你必須添加一個檢查表單是否已經提交,這樣你的數據不會再保存在數據庫中。或者您可以將發佈操作更改爲不同的頁面,以便在數據庫中插入並將用戶重定向到初始頁面表單。
大多數人使用url將表單發佈到,然後重定向回原始表單。這可以是相同的網址。
插入數據後,做了重新定位:
header('Location:'.$_SERVER['PHP_SELF']);
重定向後,爽口不會造成數據再次插入。
要向用戶顯示消息,我只需通過$_GET
設置一個標誌。例如:
// Redirect and set $_GET variable
header('Location:'.$_SERVER['PHP_SELF'].'?showmsg=true');
以顯示隱藏的div你可以做一個函數:
function show_confirmation()
{
return isset($_GET['showmsg']) && $_GET['showmsg'] == 'true';
}
而且使用這樣的功能:
<div style="display:<?php echo show_confirmation() ? 'block' : 'none'; ?>">
<!-- Message for user -->
</div>
謝謝他們的作品。但還有另一個問題。提交表單後,我收到了要顯示的消息。該消息顯示在用戶提交表單之前隱藏的div元素內。你能幫忙嗎? – 2010-09-30 04:16:58
Sanket,我更新了我的答案,並提供了向用戶顯示隱藏的div的建議。 – Mischa 2010-09-30 04:43:25
謝謝隊長。它的工作現在很好。再次感謝你。 – 2010-09-30 04:59:24
嘗試使用會話。設置會話變量以記錄用戶是否已經提交表單。
把這個在你的代碼的開頭(這需要在每一頁上):
在session_start();
然後當他們提交表單,設置會話變量:
$ _SESSION [ 'form_submitted'] = TRUE;
下面是一個教程鏈接上的會話:Tutorial
如果使用POST
代替GET
作爲動作屬性表單上,然後刷新結果頁面將不會重新提交表單(某些瀏覽器可以提供這樣做的選擇,但他們肯定不應該默認這樣做)。
但是,您不能排除表單被多次發佈的可能性 - 發生這種情況的幾種常見原因;例如,如果頁面加載緩慢,則用戶可以在按鈕上多次點擊。
做的最好的事情是有形式的隱藏唯一ID字段,所以當你接收已多次提交表單,你可以告訴你的程序可以忽略它。
生成表單html時生成一個唯一的鍵,並在表單中爲該鍵設置一個隱藏字段。將密鑰與數據一起保存,並且如果密鑰已存在於數據庫中,則不保存數據。
如果您選擇重定向方法,請不要忘記在重定向之後添加一個die以指示webserver停止腳本執行。
if(saveFormInformation())
{
header('Location: http://www.example.com/'); //this line instructs browser
//to go to example. com
//but the webserver will keep executing the rest of the script
//unless you instruct it to stop
die; //this line instructs web server to stop execution of the script
}
- 1. 提交後清除Redux表單字段
- 2. Ember - 提交後清除表單
- 3. 提交數據後如何清除表單控件?
- 4. 如何清除jquery提交的php表單數據?
- 5. 清除數據表單提交按鈕php
- 6. 清理混帳提交歷史
- 7. 在提交表單後用ajax清除所有表單元素
- 8. 表單提交後清除表單文件
- 9. 混帳刪除不需要提交
- 10. 如何在使用AngularJS提交併顯示消息後清除表單數據?
- 11. 如何在提交後在伏特視圖中清除表單?
- 12. 混帳後失蹤提交重訂
- 13. 如何在Laravel PHP中提交表單後刪除表單?
- 14. 表單提交後清除字段並提供消息
- 15. 提交後清除Rails遠程表格
- 16. 提交後清除Rails表格
- 17. 提交後清除鏈接表格
- 18. 使用jQuery提交後清除表格
- 19. 無法在角度提交後清除表單域
- 20. 如何在ajax提交後清除表單?
- 21. 在Google Apps腳本中提交後刷新或清除表單?
- 22. 在wordpress中提交後清除表單域
- 23. 如何在提交後清除ajax表單?
- 24. 在JavaScript中提交後的清除表單
- 25. 如何在提交值後清除表單?
- 26. 提交後清除Redux表單 - 多個單選按鈕
- 27. MSSQL數據庫:日誌沒有清除後提交交易
- 28. 表單在提交後不檢查模型狀態或清除表單
- 29. 在ajax提交後清除text_field
- 30. 如何在提交後清除字段?
也許使用布爾提交前檢查,然後提交當它設置爲true? – Emerion 2010-09-29 13:19:55