簡體   English   中英

我如何在 php 中關閉彈出窗口...?

[英]how i can close popup window in php ...?

我有一個頁面,其中有不同的按鈕可用。 當用戶單擊打開的彈出窗口時,在每個按鈕上。 例如,用戶單擊添加按鈕並出現一個彈出窗口。 用戶將一些數據放在控件中並按下保存按鈕。 當用戶按下保存並成功保存數據時,我想關閉打開的彈出窗口。 我使用此代碼關閉表單

function closeForm() {
    echo "<script language=\"JavaScript\">\n";
    echo "function closeForm(){ \n";
    echo "window.self.close();";
    echo " } \n";
    echo "</script>\n";
    return true;
} 

如果數據成功保存,則調用此函數。

任何人都可以幫我解決這個問題...?

請原諒,但有一種方法可以通過 JS 在 PHP 中執行此操作:

echo "<script type=\"text/javascript\" charset=\"utf-8\">window.self.close()</script>";

完成所有 PHP 服務器端處理后,您就可以執行此操作。

在 PHP 中沒有辦法做到這一點,而是使用 JavaScript。 這就是你的按鈕應該如何用 HTML 編碼:

<input type='button' value='Close' onclick='javascript: window.close();' />

先生,

您的問題非常模糊,可能分類錯誤且難以理解。

話雖如此,我會嘗試回答你,雖然,算法首先:

  1. 您有一個用戶正在輸入數據的工作流程。
  2. 您正在引導他們完成一系列步驟,在這些步驟中,您在每個步驟中收集不同的信息。
  3. 您需要在每個步驟中從“表單”(HTML 表單或 Javascript 表單)中捕獲數據,然后您需要成功保存捕獲的數據。
  4. 您需要向用戶提供操作是否成功的反饋。
  5. 成功保存表單后,您需要將用戶引導到另一個區域。

明確地說,PHP 是一種服務器端技術,它能夠將動態生成的 HTML 頁面發送到客戶端的 Web 瀏覽器,例如 HTML 表單,並處理“發布”回的 HTML 表單的結果。它。

PHP 還可以執行 SQL 數據庫“INSERT”來存儲您的信息,然后評估數據庫“INSERT”查詢的結果。

這里暗示的想法是用戶請求一個包含可以輸入數據的表單的頁面,(此表單可以只是一系列步驟中的一個步驟......)然后用戶輸入他們的數據並單擊“下一步”或表單中的“提交”按鈕,他們的瀏覽器捕獲輸入並將其發送回服務器。

服務器在特定頁面上接收此信息(在 HTML 表單屬性“action”中指定)並可以訪問幾個“超級全局”PHP 數組($_REQUEST[]、$_GET[] 或 $ _POST[],通常是“$_POST”,在 HTML 表單屬性“method”中指定)。

然后 PHP 腳本可以處理輸入:檢查 XSS(跨站點腳本)、SQL 注入攻擊、無效輸入等,如果輸入有效,則執行數據庫插入查詢。 在評估該查詢的結果並將 HTML“成功/失敗”頁面響應發送回原始用戶之后,或向用戶發送下一個 HTML 頁面(過程中的下一步)。

Javascript(就像您提供給我們的代碼一樣)是一種客戶端技術(僅限客戶端!!!),僅在最終用戶的 Web 瀏覽器中執行。 使用 javascript 表單來捕獲用戶輸入(因為能夠將其保存在持久存儲中,如數據庫)破壞了使用 HTML 表單進行回傳的眾所周知且“光線充足”的路徑的目的和實用性一個 PHP 腳本/文件/方法...除非您在談論 AJAX 調用。

AJAX(異步 JAvascript 和 XML)不是一種新技術或另一種編程語言,而是使用 Javascript 對指定的 PHP 腳本/文件進行“幕后”調用(在客戶端計算機上的獨立“線程”上)/方法來獲取特定的答案,然后將答案動態地插入到當前的 HTML DOM 中。 (部分頁面刷新,整個頁面不刷新。)然后使用 Javascript 表單來捕獲輸入可能會很有趣......雖然有點“人跡罕至”,因為用戶必須在他們的網絡瀏覽器中啟用 javascript以便您的網站正常運行。

您提供給我們的代碼表明您正在使用 javascript 關閉整個 Web 瀏覽器窗口,我很困惑......?

我建議調查使用 Javascript/jQuery 來更改嵌入式 HTML 表單的“CSS 可見性”屬性,並結合一些 AJAX 調用返回服務器,而不是某種彈出窗口,這樣你仍然可以使用你的“單擊按鈕並出現輸入區域”方法,同時仍然具有可靠的后端基礎架構來處理輸入、處理和響應。

祝你好運! :)

將其設置為按鈕的click handler

簡單的方式:

<input id="save_button" type="button" onclick="closeForm();" value="Save"/>

jQuery方式:

$("#save_button").click(closeForm);

添加成功按鈕的地方只需添加一個data-dismiss="modal"作為屬性,如下所示:

'''

    <button type="button" class="btn btn-primary" onclick="saveNotes()" data- 
    dismiss="modal">Save changes</button>

'''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM