Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.09.2013, 16:25
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Перезагрузка модального окна
На странице div у которого изначально - display: none. И есть кнопка которая его открывает в модальном окне (fancybox). Эта часть работает.

В div-e, который показывает модальное окно, находится простая форма с полем <input>, кнопкой <submit> и строкой "TOTAL". Эта форма отправляет в базу некое число, и дальше оно там либо складывается, либо вычитается и результат возвращает с строку "TOTAL", через переменную - $count . Cтраница перезагружается и в строке "TOTAL" уже новое число.

Это то же работает но если без модального окна. Мне нужно что бы результат выводился в модальное окно.

Как сделать так что бы при перезагрузке страницы модальное окно то же перезагрузилось?

Вот основная часть кода.

<script>
   $('.open_box').fancybox();
</script>
 
<a href="#hide_box" class="open_box">open</a>

<div id="hide_box" style="width:950px;display: none;">

    <p id="TOTAL"><?php echo $count->get_total(); ?></p>

    <div class="my-form">
    
         <div class="label-count"><label for="count_code">Count</label></div>
         <div class="input-wrap"><input name="count_code" class="input-count" id="count_code" value="" /></div>
         <input type="submit" class="button-count" name="apply_count" value="Apply Count" />
       
    </div>

</div>


Спасибо всем кто откликнется.
Ответить с цитированием
  #2 (permalink)  
Старый 18.09.2013, 16:43
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

отправлять данные аяксом, получать результат (некое число), запихивать его в $("#TOTAL").text(...)
Ответить с цитированием
  #3 (permalink)  
Старый 18.09.2013, 17:11
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Мне для этого нужно будет обработчик формы поменять на Ajax?

Если да, то так не получится.
Эта форма уже обрабатывается на сайте и я обработчик менять не могу.

Если глупость сморозил - сильно не бейте ))... я в ajax не разбираюсь... я больше по php специализируюсь. А тут клиенту приспичило вывести свою форму в модальное окно, что бы она просто "прикрыла" собой ту форму что уже отлажена и работает на сайте.

Можно подробнее?

Вот у меня есть переменная $count. Изначально в ней лежит - 1. После ввода в input числа 999 и отправки его в обработчик (который менять нельзя) - тот обработчик суммирует 999 с текущим значением переменной $count = 1 и результат 999 + 1 = 1000 он записывает в базу и возвращает в переменную $count. При этом перезагрузив окно.

В какую цепь мне нужно вставить ajax? И можно подробнее?

Спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 18.09.2013, 17:50
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от Round
я обработчик менять не могу.
вообще никак? или можно смотреть определенный параметр запроса, и при необходимости возвращать только <?php echo $count->get_total(); ?> ?

впрочем, если нельзя, то хрен с ним.

кнопке назначить type="button"
повесить онклик (onclick="countClick();"), в котором и отправить запрос:
function countClick() {
  var url = form.action;
  $.post(url, {count_code: $("#count_code").val(), apply_count: "Apply Count"}, function(data) {
    if (/<p\s+id="TOTAL">(\d+)/i.test(data)) { 
       $("#TOTAL").text(RegExp.$1);
    }
  });
}


примерно так. Если форма отправляется как GET, то используй $.get вместо $.post
Ответить с цитированием
  #5 (permalink)  
Старый 18.09.2013, 17:53
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Яростный Меч, спасибо. Вроде бы идею я понял... сейчас попробую реализовать.
Ответить с цитированием
  #6 (permalink)  
Старый 18.09.2013, 18:25
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Яростный Меч,

не получилось так.

Видимо обработчик завязан на кнопку type="submit" и когда я его меняю на type="button", то форма перестает обрабатываться.

Может все же как то можно это модальное окно заставить не закрываться когда перезагружается страница? Разрешить его закрывать только кнопкой close.
Ответить с цитированием
  #7 (permalink)  
Старый 18.09.2013, 19:48
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от Round
и когда я его меняю на type="button", то форма перестает обрабатываться.
да.
но форма и не должна сабмиттиться. Тебе надо просто взять данные с формы и отправить их аяксом. onclick не забыл повесить на кнопку?
Ответить с цитированием
  #8 (permalink)  
Старый 18.09.2013, 20:19
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Ага, onclick не забыл.

Все равно что то не сходится... как же основной обработчик будет выполнять подсчет, если он ждет отработки type="submit" ?

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

В консоли вот такое сообщение висит:


Uncaught ReferenceError: form is not defined
countClick
onclick
Ответить с цитированием
  #9 (permalink)  
Старый 18.09.2013, 20:33
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

а, это из-за строчки var url = form.action;
я в верстке форму не увидел, оставил так. В общем, тебе надо будет скриптом взять форму и ее атрибут action
Ответить с цитированием
  #10 (permalink)  
Старый 18.09.2013, 20:53
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Понятно.

Тогда ещё один вопрос - в form на страницу php выводит следующую строчку:

<form action="http://localhost/ ... / ... /page-4/" method="post">


Но линк этот формируется динамично вот его php вариант:

<form action="<?php echo esc_url( $count->get_count_url() ); ?>" method="post">


Как его правильно прописать скрипту?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Затемнение и блокировка всего, при показе модального окна ololosh jQuery 4 03.09.2013 14:39
Исчезают значения из модального окна crescent Общие вопросы Javascript 5 09.07.2013 13:22
Вовыд модального окна pekinessik jQuery 4 05.02.2013 16:03
Обработка события после закрытия модального окна byaka Events/DOM/Window 3 11.08.2012 19:19
Вставка данных в textarea из модального окна (для Markitup) Roman Koff jQuery 0 26.08.2010 23:21