2013-03-23 59 views
1

好的,所以過去四天我一直有問題,幾個小時前,我想我可能已經解決了一部分問題(fancybox示例#5,在他們的網站上似乎是我想要的東西),但是,我無法得到它的任何部分工作。FancyBox PHP表單提交問題

<? if($_GET['page'] != "startTime"){ ?> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script> 
    <script type="text/javascript" src="/./fancybox/jquery.mousewheel-3.0.2.pack.js"></script> 
    <script type="text/javascript" src="/./fancybox/jquery.fancybox-1.3.1.js"></script> 
    <link rel="stylesheet" type="text/css" href="/./fancybox/jquery.fancybox-1.3.1.css" media="screen" /> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#startTime").fancybox({ 
      'padding'  : 0, 
      'scrolling'  : 'no', 
      'titleShow'  : false, 
      'onClosed'  : function() { 
      $("#login_error").hide();} 
      }) 
     }); 
     $("#startTimeForm").bind("submit", function() { 
     if ($("#year").val().length < 4) { 
      $("#login_error").show(); 
      $.fancybox.resize(); 
      return false; 
     } 
     $.fancybox.showActivity(); 
     $.ajax({ 
      type : "POST", 
      cache : false, 
      url  : "downTime.php?page=ajax", 
      data : $(this).serializeArray(), 
      success : function(data) { 
       $.fancybox(data); 
      } 
     }); 
     return false; 
     }); 
    </script> 
<? } ?> 
<? if($_GET['page'] == "ajax"){ 
var_dump($_POST); } ?> 
<? if($_GET['page'] == "startTime"){?> 
<div style="width:250px" class="new"> 
    <table cellpadding="0" cellspacing="0" border="0" width="100%" class="new"> 
    <tr> 
    <form id="startTimeForm" method=post> 
    <p id="login_error">Please, enter data</p> 
    <tr> 
    <td>Enter Year</td> 
    <td><input class="czas" id="sec" name="year" type="text" size="5" maxlength="5" value="00" /></td></tr> 
    <tr> 
    <td colspan="2" align="center"><br /><input class="czas" type="submit" name="newTime" value="Set Start Time" /></td></tr> 
    </form> 

我還用了一個JavaScript函數,下面,我想最終像在上面的代碼工作,但我不能得到上面的正常工作。它什麼都不做。 Firebug也報告沒有錯誤。

<script> 
    function closeFB() { 
    <? $unix = mktime(0, 0, 0, 1, 1, $_POST['year']); ?> 
    $("#startTimeDiv").html("<div id='message'></div>"); 
    $("#message").html("<p>Contact Form Submitted!</p>") 
    .append("<p>We will be in touch soon.<br><? echo $unix; ?></p>"); 
    $.fancybox.close(); 
    } 
    </script> 

所以,任何幫助,將不勝感激。請告訴我我做錯了什麼。

+0

如果您完全沒有錯誤,您確定您的PHP if語句是正確的,並且代碼插入到生成的文檔中? – Cfreak 2013-03-23 02:19:37

+0

你的fancybox腳本的路徑也包含錯誤。我認爲這隻會評估爲'/',但如果你打算''/'我懷疑它是否正常工作 – Cfreak 2013-03-23 02:21:53

+0

Firebug報告沒有錯誤,但fancybox代碼不起作用。而且,當fancybox調用代碼是「$(document).ready(function(){(##startTime」)。fancybox({'padding':0})});我有onClick =「closeFB();」在提交行中。我試圖得到的是用戶點擊一個按鈕,打開FB,輸入數據,點擊提交按鈕,FB關閉並更新div,同時運行mktime PHP函數。但是,我在這裏讀到,爲了使提交按鈕與FB一起工作,需要FB網站上的示例#5的代碼類型,但它對我無效。 – 2013-03-23 02:34:04

回答

0

演示here正在解決該問題。它造成了另一個問題,但這是另一個問題。我相信那是你的演示,肯尼迪,謝謝你。

-1
$.ajax({ 
     type : "POST", 
     cache : false, 
     url  : "downTime.php?page=ajax", 
     data : $(this).serializeArray(), 
     success : function(data) { 

相反的:

  $.fancybox(data); 

嘗試

  $("#fancyboxdiv").fancybox(data); 

     } 
    }); 

哪裏fancyboxdiv是你的元素承載的fancybox的名稱。

你會改變其他功能

$("#fancyboxdiv").fancybox().close() 

等。 大多數JQuery用戶界面組件需要關閉元素作爲其母公司的工作,它通常會修改該元素添加/移除元素,它和更改CSS以提供所需的外觀

+0

這不是fancybox的工作方式。請查閱http://fancybox.net/api上的文檔,特別是「公共方法」的一部分。 – JFK 2013-03-23 07:41:44