我有一个php页面,我有一个隐藏的输入,如下所示:
<input type="hidden" id="selOption'+(i+1)+'" name="selOption'+(i+1)+'" value="0"/>
正如您所看到的,它具有默认值= 0。 现在使用Ajax我将上述输入的值与其他一些隐藏输入类型=“hidden”一起发送到另一个页面,如:
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循环的else部分的值,而不应该这样,因为在第一页中设置了默认值= 0。
请帮助我,我错过了什么。提前致谢
答案 0 :(得分:3)
不,你不应该在empty()
上使用0
。您会得到误报,因为在您的情况下0
是有效值。
引用manual:
以下内容被认为是空的:
"" (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)
作为替代方案,请在if块中使用isset()
:
if(isset($_POST['selAns']) && $_POST['selAns'] !== '') {
echo 'hi';
}