我最近安装了Simple Mailing List 2(目前处于测试阶段),到目前为止我已经完成了所有工作。留给我的主要事情是创建一个自定义的php页面,注册表单一旦提交就会重定向到。页面显示的内容基于用户在电子邮件字段中输入的内容,并返回以下三种结果之一:
这就是背景。现在我打算做的是显示一个弹出窗口,其中包含重定向的php页面的内容(即三个结果中的一个),而不是转到新页面。有可能这样做一个css弹出框,所以我不必打开一个新窗口?
三江源
亚当
答案 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。)