php - 替代弹出窗口

标签 php javascript html popup

我已经将一个 PHP 脚本和一个允许用户上传图像文件的小表单放在一起。目前,这是通过父 HTML 页面上按钮的“onclick”事件作为弹出窗口激活的。

根据我在这个网站上所做的研究,我知道“弹出窗口”并不是每个人都喜欢的,所以我真的想寻求一些建议,看看是否有弹出窗口的替代方案 window 。我已经尝试过 jQuery 模态对话框,但我遇到了各种各样的问题,因为我有多个提交按钮,所以我宁愿尽可能不重新访问它,尽管模态对话框的样式会沿着正确的线条。

最佳答案

就我个人而言,我是 JQuery UI 模式对话框的粉丝,因为它是轻量级的,而且我已经在我的应用程序中加载了 UI。

但这里还有更多内容....问题不在于对话框,而是您试图在对话框中上传文件的事实。上传文件的传统方法是通过 $_POST。这工作得很好,除了你的表单需要一个 Action ,并且默认情况下该 Action 将强制加载页面,即使你将它发布到它自己。所以在实践中,如果您以传统方式上传,模式对话框将不起作用。

您可能正在寻找的是执行文件上传的“Ajax”方法。这不是真正的 ajax.....你要做的是上传到页面中的“隐藏”iFrame,这有助于和上传看似无需重新加载。 Here's a tutorial ...还有一百万其他人。

还有一些 jQuery 插件可以使上传更容易.... Uploadify只是其中之一。

请注意,即使您使用“异步”方法,您仍然受到 HTML 的限制。有一个上传按钮或一个 <input type="submit">将提交您的表单,尽管不正确,使表单看起来像是无法控制地失败。因此,为了解决这个问题,要么将您的上传按钮设置为另一个非表单提交元素,例如 <a>或者只是一个带有您通过 javascript 调用 onclick 的 id 的图像。或者,将其设为按钮并使用 event.preventDefault() onclick 以防止默认的 HTML 行为。我通常使用 jQuery UI 按钮样式来完成后者。

关于php - 替代弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694106/

相关文章:

java - 有什么方法可以恢复 Netbeans 7.2 书签导航的旧样式?

javascript - 在复选框内添加复选框

html - Angular:动态渲染和获取组件的 HTML

javascript - 使用 Tagsinput Bootstrap 在 console.log 上重复值

javascript - 放大时如何将周围的元素推离屏幕?

PhpStorm X调试 : Waiting for incoming connection with ide key

php - 错误 : Your system is not ready to run Symfony projects

php - 如何扩展 Magento API catalog_product.list 以包含更多产品信息 XML-RPC

javascript - 显示点击的li并隐藏原始的

javascript - 如何在codewars中添加随机测试用例?