! пустая функция, дающая странное значение

0

У меня есть страница php, где у меня есть скрытый ввод следующим образом:

<input type="hidden" id="selOption'+(i+1)+'" name="selOption'+(i+1)+'" value="0"/>

Как вы можете видеть, оно имеет значение по умолчанию = 0. Теперь, используя Ajax, я отправляю значение вышеуказанного ввода вместе с другим скрытым типом ввода = "скрытым" на другую страницу, например:

    function showbtn(no,tid,tp){
        var v_qno = document.getElementById("QuestionID"+no).value;
        var v_secid = document.getElementById("sectionID"+no).value;
        var v_selans = 0;
            var v_vstatus = document.getElementById("visitStatus"+no).value;
            v_selans = document.getElementById("selOption"+no).value;

        var dataString = 'testId='+tid+'&secId='+v_secid+'&qNo='+ v_qno+'&selAns='+v_selans+'&vStat='+v_vstatus;
        alert(dataString);
        $.ajax({
            type: "POST",
            url: "../member/updtBttnStatus.php",
            data: dataString,
            cache: false,
            success: function(result){
                 //some code
                }
                alert(result);
            }
        });
    }

Моя проблема в том, что на странице updtBttnStatus.php, когда я использую

if (!empty($_POST['selAns'])){
//some code here}
else{//}

для проверки значения, которое оно отправляет на другую часть цикла if, в то время как это не должно быть так, потому что значение по умолчанию = 0 установлено на первой странице.

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

  • 0
    какова ценность оповещения (v_selans); приходит?
  • 0
    «Пожалуйста, помогите мне в том, что мне не хватает» - объяснение того, как empty работает в руководстве…?
Теги:
isset

1 ответ

3

Нет, вы не должны использовать empty() на 0. Вы получите ложный положительный результат, потому что в вашем случае 0 является допустимым значением.

Указание руководства:

Следующие вещи считаются пустыми:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

В качестве альтернативы используйте isset() в вашем блоке if:

if(isset($_POST['selAns']) && $_POST['selAns'] !== '') {
    echo 'hi';
}
  • 0
    Вместо этого используйте isset

Ещё вопросы

Сообщество Overcoder
Наверх
Меню