2016-08-27 2 views
0

В настоящее время я работаю над тем, чтобы мой сайт выглядел немного лучше, и я планирую заменить текущий ввод текстового поля комбинацией ввода слайдера/текстового поля, за исключением того, что я не знаю, как заставить его работать в рамках текущего кодирования.connect html slider to php variable

текущий код выглядит как следует:

<tr><td>Risk:</td><td><?php textbox('CT class=textbox',$risk,10); ?></td></tr> 

$ риска устанавливается на 0 ранее в коде, и когда форма представляется она используется для определения (очевидно) риск, который вы хотите использовать, он колеблется от 0 до 100, исходя из этой цифры, некоторые вычисления производятся после нажатия на submit.

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

<input type="range" min="0" max="100" value="0" link-to="risktext"> 
<br><br> 
<input type="text" id="risktext"> 

Javascript часть:

$(function() { 
    $('input').filter(function(){return this.type == 'range' }).each(function(){ 
     var $slider = $(this), 
      $text_box = $('#'+$(this).attr('link-to')); 

    $text_box.val(this.value); 

    $slider.change(function(){ 
      $text_box.val(this.value); 
     }); 

     $text_box.change(function(){ 
      $slider.val($text_box.val()); 
     }); 

Проблема я испытываю сейчас, и я предполагаю, что это очень легко (и Im действительно основной в таких кодах), как я могу связать все это, чтобы изменить значение $ risk?

Я надеюсь, что кто-нибудь может мне помочь :)

+0

Ключевое слово здесь «AJAX». Погугли это. –

+0

Расчет риска $ должен рассчитываться в прямом эфире на стороне сервера или только когда пользователь отправляет форму? –

+0

@ AlexisCôté расчет $ risk должен выполняться только тогда, когда пользователь отправляет форму. Он должен ввести (или выбрать) свое имя, выбрать либо практиковать, либо тестировать, и эту часть, где он/она должен выбрать риски для использования, а затем отправить. Поэтому он не должен меняться вживую. – kevibu

ответ

0

Вот базовый подход, что вы ищете (я думаю).

<?php 
     //Assign the risk value to 0 or the value defined in the $_POST variable. 
     $risk = 0; 
     if(isset($_POST['range'])) //Use the name of your control 
      $risk = $_POST['range']; 
     ?> 
<html> 

<head> 
    <title></title> 
</head> 

<body> 
    <form action="" method="POST"> 
     <input type="range" name="range" min="0" max="100" value="<?php echo $risk; ?>" link-to="risktext" /> 
     <br /> 
     <br /> 
     <input type="text" name="riskText" id="risktext" value="<?php echo $risk;?>" /> 
     <input type="submit" name="submitBtn" value="Submit" /> 
    </form> 
</body> 

</html> 
+0

Это почти сделало трюк. Значение, которое имеет слайдер, принимается при отправке. Кроме того, значение ползунка как-то не отображается в текстовом поле, поэтому сейчас это просто слепое предположение. – kevibu

+0

@kevibu Я обновил свой ответ, установив начальное значение текстового поля на значение риска. Причина в том, что это не то же самое значение, потому что событие onChange не было вызвано, потому что изменений не было, а только другого начала. Вы можете заглянуть в событие «создать», если вы предпочитаете оставаться в JavaScript. –

+0

Либо я делаю что-то неправильно, либо все еще не работает. Всякий раз, когда я нажимаю, текстовое поле не меняет номер, оно остается 0. Если я использую слайдер, я хочу, чтобы значение текстового поля изменилось соответствующим образом. Надеюсь, вы понимаете, что я имею в виду, и что вы можете мне помочь. (извините за то, что он тоже глупый: P) – kevibu