我正在使用jquery验证和ajax发布表单,但要发布一个空白字段与我的数据和我使用:
<input type="text" name="blank" class="blank" />
当php post发送带有此字段的表单时,$_POST['blank']的值是"blank"而不是预期的"。
当我尝试
时也是如此 <input type="text" name="blank" class="blank" value=""/>
如果我使用这个:
<input type="text" name="blank" class="blank" value="this_value"/>
我得到$_POST['blank']的"this_value"。
表单上的其他内容都可以正常工作,除了空白字段的值与其名称匹配而不是空白值。
有人遇到这种情况并知道补救方法吗?
我以前遇到过这种情况,对我来说最简单的解决方案是尝试查找$_POST中是否存在字段,如果不存在,假设它是空白的:
<?php
if (array_key_exists('blank',$_POST)===FALSE)
{
$blank='';
} else
{
$blank=$_POST['blank'];
}
?>
编辑:我错了。原始答案只有在只使用复选框的表单上下文中才正确。
浏览器不会向服务器发送带有空'value'属性的字段。分配服务器端变量的更好方法是使用带有isset()条件的三元操作符:
<?php
$blank = isset($_POST['blank']) ? $POST['blank'] : '' ;
?>
关于php三元运算符的更多信息:http://us3.php.net/ternary#language.operators.comparison.ternary参见"例#2设置默认值"