2012-03-18 3 views
2

У меня есть несколько слайдеров на моей странице: one. Для одного он работает нормально, но для нескольких слайдеров формы значения столбца php возвращают пустой.jQuery несколько слайдеров на одной форме

До сих пор у меня есть:

JQuery:

$(function() { 
    $(".slider").slider({ 
     value:0, 
     min: -1, 
     max: 1, 
     step: 0.01, 
     slide: function(event, ui) { 
      $(".amount").val("$" + ui.value); 
     } 
    }); 
    $(".amount").val("$" + $(".slider").slider("value")); 
}); 

Мой HTML:

<div class="demo"> 
    <form action="next.php" method="post"> 
     <p> 
      <label class="amount">How strong is your relationship with this person?</label> 
      <input type="hidden" name="first_question" /> 
     </p> 
     <div class="slider"></div> 
     <br/> 
     <p> 
      <label class="amount">How would you feel asking this friend to loan you $100 or more?</label> 
      <input type="hidden" name="second_question" /> 
     </p> 
     <input type="submit" value="Submit" /> 
    </form> 
</div> 

Как правильно передать пост значения?

+0

Не уверен, что я понимаю, что у вас здесь. Насколько я могу судить, ваша форма имеет два скрытых входа, но никаких значений, связанных с ними. Когда вы отправляете свою форму, я бы предположил, что никакие значения не будут представлены для этих полей ввода, потому что они не имеют значений по умолчанию и B. У пользователя нет возможности вводить значения, поскольку они скрыты. – kinakuta

+0

Ваш ползунок пытается изменить значение меток меток '$ (" .amount ") .val (...' (который даже не имеет атрибута value), а не поля скрытой формы. – j08691

+0

Где находится второй слайдер в вашем html выше? Я ищу еще один

. –

ответ

4

Вы должны добавить div для каждого ползунка вы хотите и дать ползунки атрибут, который связывает их с input - Это пример с помощью HTML в качестве отправной точки:

<div class="demo"> 
    <form id="myform" action="next.php" method="post"> 
     <p> 
      <label class="amount">How strong is your relationship with this person?</label> 
      <input type="hidden" name="first_question"/> 
     </p> 
     <div class="slider" id="first"></div> 
     <br/> 
     <p> 
      <label class="amount">How would you feel asking this friend to loan you $100 or more?</label> 
      <input type="hidden" name="second_question"/> 
     </p> 
     <div class="slider" id="second"></div> 
     <br/> 
     <input type="submit" value="Submit" /> 
    </form> 
</div> 

Затем используйте следующую инициализацию ползунки:

$(".slider").slider({ 
    step: 1, 
    min: 0, 
    max: 10, 
    value: 5, 
    slide: function(event, ui) { 
     $("input[name=" + $(this).attr("id") + "_question]").val(ui.value); 
    } 
}); 

важной частью здесь является установка значения - это г rabs атрибут id из слайдера div добавляет _question к нему, а затем находит input с соответствующим атрибутом name.

Working example here

Примечание: Вы не имеют значений по умолчанию, заданные на input с так что если пользователь должен был представить не получите ничего, представленный (как вы будете делать в моем примере)

+0

Спасибо, это то, что я действительно хочу. Еще одна вещь: как поместить значение по умолчанию? –

+0

@DiogoPereira add 'value =" 0 "' '' '' '' '' '' '' 'ваше значение отправки по умолчанию - вы должны сопоставить его с атрибутом' value' в вашей инициализации ползунка – ManseUK

1

Просто измените

$(".amount").val("$" + ui.value); 
     } 
    }); 
    $("input[type="hidden"]" ).val("$" + $(".slider").slider("value")); 

в

$("input['text']").val("$" + ui.value); 
     } 
    }); 
    $("input[type="hidden"]").val("$" + $(".slider").slider("value")); 

Проверьте это, изменив скрытые поля на текст.

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