2014-02-18 97 views
1

我試圖讓表單提交後關閉shadowbox。目前我的PHP被設置爲刷新調查問題。現在,我使用shadowbox在頁面加載時加載調查,我希望在按下提交按鈕後它會消失。Shadowbox - 自動關閉php表單提交

網站鏈接:Survey site.

我的PHP代碼:

<?php 
$to = "[email protected]"; 
$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寫。任何幫助是極大的讚賞。如果1組已提交

檢查和添加一個類的太極拳 -

+0

我向你推薦,創建一個會話或cookie的VAR當用戶訪問您的網站,洙您可以創建一個問題 如果($ _ SESSION [「USR」] == 1) //太極拳是不可見的 如果你想在用戶點擊提交時隱藏shadowbox,這對jQuery來說很簡單,但是你提交,發送表單並刷新頁面,因此不可能。 – Netzach

回答

2

能試試這個。

然後只有打開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 = "[email protected]"; 
     $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; ?>"> 
0

然後......我向你推薦,當收到表格時使用$ _SESSION var。

例如: 表單:太極拳

<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發送表單,並且在點擊鏈接之後立即隱藏帶有hide()的div盒子; jquery函數。 如果你想得到這段代碼的幫助,請訂購它!