我有一个页面,其中有不同的按钮可用。当用户单击打开的弹出窗口时,在每个按钮上。例如,用户单击“添加”按钮,将出现一个弹出窗口。用户在控件中放入一些数据并按下保存按钮。我想在用户按下保存并成功保存数据时关闭打开的弹出窗口。我使用此代码关闭表单
function closeForm() {
echo "<script language=\"JavaScript\">\n";
echo "function closeForm(){ \n";
echo "window.self.close();";
echo " } \n";
echo "</script>\n";
return true;
}
如果数据成功保存,则调用此函数。
任何人帮我解决这个问题......?
答案 0 :(得分:2)
在PHP中无法做到这一点,而是使用JavaScript。 这就是你的按钮应该用HTML编码的方式:
<input type='button' value='Close' onclick='javascript: window.close();' />
答案 1 :(得分:2)
您的问题非常含糊,可能被错误归类,难以理解。
话虽如此,我会尝试回答你,尽管,算法第一:
简单明了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);