无法从$_POST数据添加名称作为值获得空白表单值?(jquery验证ajax)


Unable to get a blank form value from $_POST data adding name as value? (jquery validate ajax)

我正在使用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设置默认值"