包含会话变量或php文件的css弹出窗口

时间:2011-10-26 18:08:15

标签: php css

我最近安装了Simple Mailing List 2(目前处于测试阶段),到目前为止我已经完成了所有工作。留给我的主要事情是创建一个自定义的php页面,注册表单一旦提交就会重定向到。页面显示的内容基于用户在电子邮件字段中输入的内容,并返回以下三种结果之一:

  1. 如果电子邮件语法不正确,则会显示错误消息。
  2. 如果用户订阅了自定义消息,告诉他们检查他们的电子邮件。
  3. 如果用户已选择取消订阅,则会显示自定义消息。
  4. 这就是背景。现在我打算做的是显示一个弹出窗口,其中包含重定向的php页面的内容(即三个结果中的一个),而不是转到新页面。有可能这样做一个css弹出框,所以我不必打开一个新窗口?

    三江源

    亚当

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你正在混淆隐喻。 CSS只是一种表现技术,可用于确定某种东西的风格。没有“css弹出框”这样的东西。

你想要做的是有一个HTML元素(可能是一个div),它包含你想要显示的信息,最初被设置为不可见(你使用CSS为display:none; style)。你所描述的本质上是一个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必须读取变量的值,做一些逻辑,然后回应响应。

答案 2 :(得分:0)

您可以使用<iframe>作为文档内“弹出窗口”,只需将表单的target设置为name / id即可。 iframe中。 (您可以使用一些JavaScript仅在提交表单后显示iframe。)