Shadowbox - 自动关闭php表单提交

时间:2014-02-18 16:11:49

标签: javascript php jquery forms

我试图在提交表单后关闭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中编写。非常感谢任何帮助。

2 个答案:

答案 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函数。 如果您希望获得此代码的帮助,请点击它!