2013-03-23 6 views
1

Хорошо, поэтому у меня была проблема в течение последних четырех дней, и пару часов назад я думаю, что, возможно, я решил ее часть (например, пример # 5 на их сайте быть тем, чего я хочу), однако я не могу заставить его работать.FancyBox PHP form submit issue

<? 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> 

Я также использовал яваскрипт функцию, ниже, и я в конце концов, все равно, что работать в коде выше, но я не могу получить выше для правильной работы. Он просто ничего не делает. 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

+0

Также путь к вашему скрипту fancybox выглядит неправильно. Я думаю, что это оценило бы только '/', но если вы собираетесь '. /' Я сомневаюсь, что он работает правильно – Cfreak

+0

Firebug не сообщает об ошибках, но код fancybox не работает. И/./ неожиданно работает, когда код вызова fancybox был «$ (document) .ready (function() {\t $ (« # startTime »). Fancybox ({'padding': 0})});" и у меня есть onClick = "closeFB();" в строке отправки. То, что я пытаюсь получить, - это щелкнуть пользователем кнопку, открыть FB, ввести данные, нажать кнопку отправки, закрыть FB и обновить div, в то же время запустив функцию mktime PHP. Но, я читал здесь, что для того, чтобы кнопка отправки для работы с FB, нужен тип кода примера № 5 на веб-сайте FB, но для меня это не работает. –

ответ

0

Демонстрация here работала, чтобы решить эту проблему. Это создало еще одну проблему, но это касается другого вопроса. Я считаю, что это была ваша демонстрация, JFK, так что спасибо.

-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 UI требует элемента отрабатывать как свой родитель, и это, как правило, изменять этот элемент добавление/удаление элементов в ней и измените критерии поиска, чтобы получить видимость, что необходимо

+0

Это не то, как работает fancybox. Проверьте документацию на http://fancybox.net/api, в частности, на часть «общедоступных методов». – JFK