jQuery Слайдер в php скрипт: обработка проблем & quot; 0 & quot; ценности

Я использую компонент слайдера jQuery в одной из моих форм следующим образом:

<form action="survey_dis.php" method="POST" target="_self" name="apForm">
<div data-role="rangeslider">
<input type="range" name="F1" id="F1" min="0" max="100" step="5" value="" onchange='document.getElementById("bar1").value =  document.getElementById("F1").value."%";'>
<input type="text" name="bar1" id="bar1" value="" size="3" disabled />
</div>
(...)
</form>

Как вы заметили, в допустимом диапазоне должен указываться процент, поэтому допустимые значения должны быть в диапазоне от 0 до 100. Поскольку проверка пустого ($ var) вернет TRUE даже для «0», я установил «значение» по умолчанию с пустой строки…

Теперь в моем php-скрипте мне нужно проверить, выбрал ли пользователь значение, а не сохранять его по умолчанию:

for ($i=1; $i<51; $i++){ // 51 questions
if (isset($_POST["F$i"]) && strlen($_POST["F$i"]) && ($_POST["F$i"]<>'-1') ){
$F_var = $_POST["F$i"];
} else {
print "Question # $i missing";
$missing_fields += 1;
}
}

Тем не менее, он всегда выглядит как php, как будто сделан выбор ползунка, и условие «else» никогда не применяется … даже если я по умолчанию «value» с «0».

0

Решение

Прежде всего, у вас есть синтаксическая ошибка в вашем onchange, Ваш % соединяется с . вместо +

document.getElementById("F1").value + "%";'

Почему значение 0 возвращает истину?

Вы проверяете длину строки, которая равна 1, даже для 0, Другие два условия, конечно, также верны, так как 0 != -1 и данный параметр установлен.

Вы могли бы отправить bar вместо полей и отметьте их, поскольку они по умолчанию пусты. Замечания: сделать это поле нельзя disabled как это никогда не будет отправлено в этом случае. Вы можете установить его на readonly например.

Подсказка: Вы начинаете свой цикл в $i=1, Так что ваш последний вопрос никогда не будет проверен, так как вы перестанете зацикливаться на $i<51 вместо $i<=51

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]