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

包含会话变量或php文件的css弹出窗口,php,css,Php,Css,我最近安装了简单邮件列表2(目前处于测试阶段),到目前为止,我已经完成了所有工作。剩下我要做的主要事情是创建一个定制的php页面,一旦提交,注册表单就会重定向到该页面。页面显示的内容基于用户在电子邮件字段中输入的内容,并返回以下三个结果之一: 如果电子邮件语法不正确,将显示错误消息 如果用户已订阅,则会显示一条自定义消息,告诉他们检查电子邮件 如果用户选择取消订阅,则为自定义消息 这就是背景。现在我打算做的是显示一个弹出窗口,其中包含重定向php页面的内容(即三个结果之一),而不是转到新页面。是

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

  • 如果电子邮件语法不正确,将显示错误消息
  • 如果用户已订阅,则会显示一条自定义消息,告诉他们检查电子邮件
  • 如果用户选择取消订阅,则为自定义消息 这就是背景。现在我打算做的是显示一个弹出窗口,其中包含重定向php页面的内容(即三个结果之一),而不是转到新页面。是否可以在css弹出框中执行此操作,这样我就不必打开新窗口

    谢谢


    Adam

    您可以使用
    作为文档中的“弹出窗口”,您只需将表单的
    目标设置为iframe的
    名称
    /
    id
    。(您可以使用一些JavaScript只在表单提交后显示iframe。)

    您可以使用JavaScript向PHP页面发送ajax请求,该页面将执行计算,结果将发送到“窗口”内容,然后向用户显示窗口,您正在混合隐喻。CSS只是一种表示技术,您可以使用它来确定某事物的样式。没有“css弹出框”这样的东西

    您想要做的是有一个HTML元素(可能是一个div),它包含您想要显示的信息,最初设置为不可见(您使用CSS来显示: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>
    
    
    AJAX测试
    

    给我装东西

    jQuery(文档).ready(函数(){ registerEventListeners(); }); 函数注册表EventListeners(){ jQuery(“#entertuff”).change(getData); } 函数getData(){ jQuery.ajax({ 键入:“POST”, 数据:{ stuff:jQuery(“#entertuff”).val(), }, url:“http://localhost/myprocessor.php", 成功:秀酷, 完成:updateDisplay }); } 函数showCool(数据、文本状态、jqXHR){ var选择器=jQuery(“#消息”); selector.val(数据) } 函数updateDisplay(){ jQuery(“#响应”).show(); }

    然后,您的myProcessor.php必须读取变量的值,执行一些逻辑,并回显响应。

    您不能在此弹出窗口中对该脚本使用ajax请求吗?啊,好的,我想我明白您的意思了,所以不要直接将表单发送到process.php,而是将数据发送到ajax交互,后者将数据发送到process.php本身,获取信息,并在隐藏的div中显示输出?我只是在俚语中使用了“css弹出窗口”来指代不打开新窗口的弹出窗口!对的这是这种交互最常见的实现模式。iframe可能会工作,尽管他们通常会皱眉头一段时间(他们似乎会回来)。为帮助干杯!如果用户禁用了JavaScript,此方法是否有回退?我注意到脚本中调用了形式action=“#”、方法和动作属性。不,没有J.;)AJAX就不能很好地工作在这种情况下,可以使用标记更改表单定义。有关处理此问题的更多信息,请参见此处: