2010-08-06 65 views
1

我想弄清楚什麼是最好的方法將處理表單提交涉及到更新數據庫記錄和生成/下載CSV文件,重定向到原來的調用頁面之前。我看過帖子說JavaScript是處理這個問題的方法之一,但是你會推薦什麼樣的好習慣?生成/下載CSV和重定向

這裏是基本設置:

用戶檢查一組複選框應在數據庫進行更新,並以CSV格式下載的。表單提交表單處理腳本,它更新數據庫並跟隨所有更新,迴應CSV內容(使用內容處置和所有必要的標題) - 這一切都很好,但我還需要將用戶返回到原始頁面,更新已完成。這可能嗎?

+0

好問題。從我+1。我正在考慮它... – Kangkan 2010-08-06 08:48:45

回答

1

您需要在更新db記錄的腳本中設置一個會話變量,告訴下一頁加載時,您想要將CSV文件發送給用戶;然後在包含記錄列表(原始頁面)的頁面中,檢查是否設置了該會話變量。如果已設置,則會將用戶重定向到生成CSV的頁面(包含內容處置等)

重定向到強制下載用戶的頁面(通過內容處置附件)不會將瀏覽器遠離原始頁面,因此即使在用戶獲得CSV文件的下載彈出窗口後,他/她仍將保留在原始頁面上。

+0

感謝reko_t - 這是有道理的,並且不需要javascript,我不想涉足應用程序代碼。 – kenny99 2010-08-06 09:00:00

+0

實際上,您可能需要使用JS重定向,因爲在向瀏覽器發送任何內容之前,必須先使用PHP發送「Location」標頭;因此如果使用PHP重定向到CSV文件,則無法呈現實際頁面。 – 2010-08-06 09:07:55