2013-02-12 4 views
0

Я пытаюсь опубликовать форму из FoncyBox2 и до сих пор не повезло. Результатом следующего кода является закрытое наложение. Больше ничего не происходит. Нет ошибки. Нет, ничего. Все, что я хочу, это результат (который в этом случае является содержимым поля) появляться вместо формы в том же наложении.Публикация формы (ajax) в FancyBox2

HTML:

<a class="fancybox fancybox.ajax" href="formPage.php">Open Overlay</a> 

JavaScript:

$(document).ready(function(){ 
      $(".fancybox").fancybox(); 

      $("#question-form").bind("submit", function() { 
       $.fancybox.showActivity(); 

       $.ajax({ 
        type : "POST", 
        cache : false, 
        url: "formProcessing.php", 
        data: $(this).serializeArray(), 
        success:function(data){ 
         $.fancybox(data); 
        } 
       }); 
       return false; 
      }); 
     }); 

Форма (formPage.php):

<form id="question-form" action="" method="POST"> 
Name <input type="text" name="name"> 
<input type="submit" value="Send"> 
</form> 

обработки формы (formProcessing.php):

print_r($_POST); 

О, я не беспокоюсь о проверке. Я планирую сделать это по-другому.

Спасибо, @rrfive

+0

Ваша проблема, кажется, здесь ** данные: $ (this) .serializeArray(); ** попытаться добавить селектор форм следующим образом: ** data: $ ('# question-form'). serialize() ** – Daniel

+0

Странно, что у вас не было никаких ошибок .... в любом случае, проверьте http://stackoverflow.com/a/11299547/1055987 (включает демонстрацию) – JFK

+0

Возможный дубликат [FancyBox v2 - поле входа] (HTTP: // StackOverflow.com/questions/11296373/fancybox-v2-login-box) – JFK

ответ

1

Право, мне удалось решить эту проблему. Оказывается, я тупой, и это был простой случай перемещения кода $ .ajax на страницу формы. Вот мой последний код.

HTML (index.html) - без изменений:

<a class="fancybox fancybox.ajax" href="formPage.php">Open Overlay</a> 

JavaScript (index.html):

$(".fancybox").fancybox(); 

Форма (formPage.php) - без изменений:

<form id="question-form" action="" method="POST"> 
Name <input type="text" name="name"> 
<input type="submit" value="Send"> 
</form> 

JavaScript (formPage.php):

$(document).ready(function(){ 
      $("#question-form").bind("submit", function() { 
       $.ajax({ 
        type : "POST", 
        cache : false, 
        url: "formProcessing.php", 
        data: $(this).serializeArray(), 
        success:function(data){ 
         $.fancybox(data); 
        } 
       }); 
       return false; 
}); 
}); 

обработки формы (formProcessing.php):

print_r($_POST); 

Благодаря @JFK и @Daniel для ваших предложений.

0

Я новый пользователь в этой сообществе. Сначала все извиняюсь за мой плохой английский :)

Я также использую приведенный выше код, он отлично работает, но мне хотелось бы, чтобы документ был перезагружен после закрытия fancybox.

Я пытался с этим кодом:

<script type="text/javascript"> 
    $(document).ready(function() { 
     // cart iframe 
     $("#stocart").bind("submit", function() { 
      $.ajax({ 
       type  : "POST", 
       cache  : false, 
       url   : "reloadpage.php", 
       data  : $(this).serializeArray(), 
       success: function(data) {$.fancybox(data);}, 
       afterClose: location.reload() 
      }); 
      return false; 
     }); 
    }); 
</script> 

но перезагрузить страницу без отображения FancyBox ... как перезагрузить страницу при нажатии кнопки закрытия FancyBox? Спасибо большое

+2

Затем ознакомьтесь с [сообществом об этом] (http://stackoverflow.com/tour) перед публикацией ... – brasofilo

Смежные вопросы