我怎么能关闭php中的弹出窗口...?

时间:2011-04-20 16:15:04

标签: php javascript

我有一个页面,其中有不同的按钮可用。当用户单击打开的弹出窗口时,在每个按钮上。例如,用户单击“添加”按钮,将出现一个弹出窗口。用户在控件中放入一些数据并按下保存按钮。我想在用户按下保存并成功保存数据时关闭打开的弹出窗口。我使用此代码关闭表单

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

如果数据成功保存,则调用此函数。

任何人帮我解决这个问题......?

4 个答案:

答案 0 :(得分:2)

在PHP中无法做到这一点,而是使用JavaScript。 这就是你的按钮应该用HTML编码的方式:

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

答案 1 :(得分:2)

先生,

您的问题非常含糊,可能被错误归类,难以理解。

话虽如此,我会尝试回答你,尽管,算法第一:

  1. 您有一个工作流程 用户正在输入数据。
  2. 你是 指导他们通过一系列 你正在收集的步骤 不同的信息 每一步。
  3. 你需要抓住 来自“表单”的每个步骤的数据(HTML表单,或 Javascript Form)然后你需要 成功保存捕获的数据。
  4. 你需要 为用户提供 关于手术是否成功的反馈意见。
  5. 表单成功后 保存您需要指导用户 另一个地区。
  6. 简单明了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表单POST回到的众所周知和“光线充足”路径的目的和实用性PHP脚本/文件/方法......除非你在谈论AJAX调用。

    AJAX(异步JAvascript和XML)不是一种新技术或其他编程语言,而是使用Javascript对指定的PHP脚本进行“幕后”调用(在客户端计算机上的独立“线程”上) / file / method获取特定答案,然后将答案动态插回到当前HTML DOM中。 (部分页面刷新,整个页面都不刷新。)然后使用Javascript表单捕获输入可能很有趣...虽然有点“偏离常规”,因为用户必须在其Web浏览器中启用javascript为了让您的网站正常运作。

    您提供给我们的代码表明您使用javascript关闭整个Web浏览器窗口,我很困惑......?

    我建议调查使用Javascript / jQuery来更改嵌入式HTML表单的“CSS visibility”属性,并将一些AJAX调用结合回服务器,而不是弹出某种类型的弹出窗口,这样你仍然可以使用“点击按钮和输入区域出现”方法,同时仍然有一个可靠的后端基础设施来处理输入,处理和响应。

    祝你好运! :)

答案 2 :(得分:1)

请原谅,但有一种方法可以通过JS在PHP中执行此操作:

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

您可以在完成所有PHP服务器端处理后执行此操作。

答案 3 :(得分:0)

将其设置为按钮的click handler

平原:

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

jQuery方式:

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