2011-10-26 39 views
0

我最近安装了简单邮件列表2(目前处于测试阶段),并且我已经完成了所有工作。剩下的主要事情就是创建一个自定义的php页面,注册表单一旦提交就会重定向。页面显示的内容基于用户在电子邮件字段中输入的内容,并返回以下三个结果中的一个:包含会话变量或php文件的css弹出窗口

  1. 如果电子邮件语法不正确,则会显示错误消息。
  2. 自定义消息,如果用户已订阅告诉他们检查他们的电子邮件。
  3. 如果用户选择取消订阅自定义消息。

这就是背景背景。现在我打算做的是显示一个弹出窗口,其中包含重定向的PHP页面(即三个结果之一)的内容,而不是进入新页面。是否有可能做到这一点的CSS弹出框,所以我不必打开一个新的窗口?

三江源

亚当

+0

难道你不能在这个弹出窗口中使用对该脚本的ajax请求吗? –

回答

0

你可以使用一个作为一个在文档“弹出”,您只需设置窗体的target到iframe的name/id。 (您可以使用一些JavaScript在表单提交后仅显示iframe。)

1

您可以使用JavaScript向PHP页面发送ajax请求,该页面将执行计算,结果将发送到您的“窗口“内容,然后向用户显示窗口

1

您在混合隐喻。 CSS只是一种演示技术,用于确定某种东西的风格。没有像“css弹出框”这样的东西。

你想要做的是有一个HTML元素(可能是一个div),它包含你想要显示的信息,最初设置为不可见(你用display:none; style使用CSS)。您所描述的实质上是一种AJAX交互,它使用Javascript来分析表单的内容,将数据发送到服务器进行评估,并返回要显示的消息(不会触发回发/进入新页面)。该Javascript也会处理将HTML元素的显示设置为true的CSS部分。

这是一个相当常见的情况,所以你应该能够在网上找到片段。

...但这里有一个超级愚蠢的例子

<html> 
    <head> 
     <title>AJAX Test</title> 
    </head> 
    <body> 
     <form action="#"> 
      <input type="text" id="enterStuff" /> 
     </form> 
     <div id="response" style="display:none;"> 
      <p id="message">Put stuff in me</p> 
     </div> 
     <script type="text/javascript"> 
      jQuery(document).ready(function(){ 
       registerEventListeners(); 
      }); 

      function registerEventListeners(){ 
       jQuery("#enterStuff").change(getData); 
      } 

      function getData(){ 

      jQuery.ajax({ 
       type : 'POST', 
       data : { 
        stuff : jQuery("#enterStuff").val(), 
       }, 
       url : "http://localhost/myprocessor.php", 
       success : showCool, 
       complete : updateDisplay 
      }); 
      } 
      function showCool(data, textStatus, jqXHR){ 
       var selector = jQuery("#message"); 
       selector.val(data) 
      } 
      function updateDisplay() { 
       jQuery("#response").show(); 
      } 
     </script> 
    </body> 
</html> 

那么你myProcessor.php必须读取变量的值,做一些逻辑,和回声响应。

+0

好吧,我想我明白你的意思,所以不是直接发送表单到process.php,而是将数据发送到ajax交互,它将数据发送到process.php本身,并将信息返回,并且在隐藏的div中显示输出?我只是在俚语环境中使用“css弹出窗口”来引用不打开新窗口的弹出窗口! – AdamBarry

+0

正确。这是这种交互类型最常见的实现模式。 iframe可以工作,尽管他们通常会皱眉一会儿(他们似乎要回来了)。 –

+0

欢呼声!如果用户禁用了JavaScript,此方法是否有后备功能?我注意到表单action =“#”,方法和动作属性在脚本中被调用。 – AdamBarry