У меня есть страница 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 установлено на первой странице.
Пожалуйста, помогите мне в том, что мне не хватает. заранее спасибо
Нет, вы не должны использовать 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';
}
empty
работает в руководстве…?