2015-02-03 4 views
0

У меня есть многостраничная форма, которая использует php и javascript для захвата и хранения различных значений.Использование javascript для получения значений

Форма хорошо работает отдельно от одной проблемы, которая оставила меня в тупике. На третьем этапе формы есть дополнительный раздел дополнительных функций, который работает так, как должен, когда что-то выбрано, но если ничего не выбрано, предыдущее значение не переносится на следующий этап.

Я предполагаю, что это потому, что я использую функцию щелчка, поэтому, если ничего не выбрано, оно падает. Как мне обойти это?

$('.radio2').click(function() { 
      var servicecost = <?php echo json_encode($_POST['sum']); ?>; 
      var sum2 = parseInt(servicecost); 
      $('.radio2:checked').each(function() { 
       sum2 += parseFloat($(this).closest('div').find('.values').text()); 
      }); 
      $('#sum2').html(sum2); 
      $("input[name=sum3]").val(sum2); 
      }); 

Servicecost - значение выбранных параметров на предыдущей странице.

+0

Я думаю, вы ответили на свой вопрос, верно? Вам нужно заполнить скрытое место для резервного копирования, если ваш пользователь никогда не вызывает обработчик кликов. Тогда, если нет 'sum3', вы можете получить от' 'Или что угодно , – ruffin

ответ

0

Я получил вокруг этого, скрывая кнопку Далее, пока не будет выбран вариант. Я добавил новую опцию (без дополнительных опций) со значением 0 для пользователей, которые не требуют каких-либо изменений, и это вызвало проблему с функцией щелчка.

0

Передача значений, извлекаемых скриптом между страницами, может быть достигнута несколькими способами.

  1. Использование HTML5 Локальное/сеансовое хранение - однако ваши страницы должны принадлежать одному домену. Для этого требуется браузер с поддержкой HTML5.

  2. Используйте файлы cookie (эта же политика домена снова) и не будет работать, если файлы cookie отключены.

  3. Отправить данные через кодировку URL.

  4. ОТПРАВИТЬ данные на сервер, а затем отправить их с сервера.

0

Вы верны. Когда вы написали логику для печати servicecost в событии click, вы не сможете распечатать стоимость услуги с предыдущей страницы. Мое предложение было бы,

Вы устанавливаете div sum2 при поступлении в текущую форму. Примечание: Сделайте sum2 как глобальный, так что вам не нужно использовать POST .. Может быть, $(document).ready(function() { var servicecost = <?php echo json_encode($_POST['sum']); ?>; var sum2 = parseInt(servicecost); $('#sum2').html(sum2); $("input[name=sum3]").val(sum2); });

+0

Это сработало, когда я ничего не выбрал на этом этапе (значение с предыдущей страницы переносится на следующую), но теперь значения с этого этапа не добавляются к текущему итогу, если они отмечены. –

+0

Сделать var sum2 глобальным, чтобы вам не нужно использовать POST. Прокомментируйте эти две строки. Var servicecost = ; var sum2 = parseInt (servicecost); –

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