我试图在提交表单后关闭shadowbox。目前我的php设置为刷新调查问题。既然我正在使用shadowbox在页面加载时加载调查,我希望它在按下提交按钮后消失。
网站链接:Survey site.
我的PHP代码是:
<?php
$to = "milam.matthew@gmail.com";
$subject = 'Survey Results';
$group1 = $_POST["group1"];
$headers = "From: $name <$email>\n";
$headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
$mes .= 'Training Method Preferred: '.$group1;
{
mail($to, $subject, $mes, $headers);
}
header('Location: ' . $_SERVER['HTTP_REFERER']);
?>
我不确定这是否应该在php代码或shadowbox.js中编写。非常感谢任何帮助。
答案 0 :(得分:2)
可以试试这个 -
检查是否已提交group1并将类添加到shadowbox。
如果打开了类,则只打开shadowbox。
PHP
<?php
$shadowboxClass = '';
if (!isset($_POST["group1"])) {
$shadowboxClass = '.open';
}
?>
<div id="sb-container" class="<?php echo $shadowboxClass; ?>">
的jQuery
window.onload = function() {
if($("#sb-container").hasClass('open')){
// open a welcome message as soon as the window loads
Shadowbox.open({
content: '<div id="welcome-msg">Welcome to my website!</div>',
player: "html",
title: "Welcome",
height: 350,
width: 350
});
}
};
然后,正如Netzach建议你应该设置一个会话变量,然后只需使用if语句。
<?php
if (isset($_POST["group1"]) && !empty($_POST["group1"])) {
$to = "milam.matthew@gmail.com";
$subject = 'Survey Results';
$group1 = $_POST["group1"];
$headers = "From: $name <$email>\n";
$headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
$mes .= 'Training Method Preferred: '.$group1;
{
mail($to, $subject, $mes, $headers);
}
$_SESSION['submitedSurvey'] = 1;
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
$shadowboxClass = '';
if ($_SESSION['submitedSurvey'] != 1) {
$shadowboxClass = '.open';
}
?>
<div id="sb-container" class="<?php echo $shadowboxClass; ?>">
答案 1 :(得分:0)
然后......我建议你在收到表格时使用$ _SESSION var。
例如: 你的表格:ShadowBox
<form id="form" action="process.php">
//YOUR RADIOBUTTONS OR CHeCKBOX
<input type="submit" value="Submit" id="btn_submit">
</form>
process.php
<?
$_POST['myCheckbox'];
$_SESSION['user'] = 1;
//.... etc etc your source...
?>
现在,您的页面再次
<? if($_SESSION['user'] != 1){//the user already filled in the form
//YOUR SHADOWBOX CODE
}?>
单击提交时,使用Jquery非常容易隐藏框
<script>
$('#btn_submit').click(function(){
$('#theiddivoryourshadowbox').hide();
});
</script>
然后,如果您不想刷新页面,我建议您使用链接而不是按钮,然后您可以使用ajax发送表单,并在点击链接后立即隐藏div框用hide(); jquery函数。 如果您希望获得此代码的帮助,请点击它!