Php 无法从$\u POST数据中获取空白表单值,是否将名称添加为值?(jquery验证ajax)
我使用jquery validate和ajax发布表单,但想发布一个包含我的数据的空白字段,我使用:Php 无法从$\u POST数据中获取空白表单值,是否将名称添加为值?(jquery验证ajax),php,ajax,forms,validation,Php,Ajax,Forms,Validation,我使用jquery validate和ajax发布表单,但想发布一个包含我的数据的空白字段,我使用: <input type="text" name="blank" class="blank" /> 通过php post发送带有此字段的表单时,$\u post['blank']的值为“blank”,而不是预期的“blank” 如果我尝试,情况也是如此 <input type="text" name="blank" class="blank" value=""/>
<input type="text" name="blank" class="blank" />
通过php post发送带有此字段的表单时,$\u post['blank']的值为“blank”,而不是预期的“blank”
如果我尝试,情况也是如此
<input type="text" name="blank" class="blank" value=""/>
如果我使用这个:
<input type="text" name="blank" class="blank" value="this_value"/>
我得到了$u POST['blank']的“this_值”,这与预期的一样
除了在空白字段中有一个与其名称匹配的值,而不是空白值,所有其他内容都在表单上完成。
有人遇到过这个问题并知道解决方法吗?我以前遇到过这个问题,对我来说最简单的解决方法是尝试查找$\u POST中是否存在字段,如果不存在,则假设它为空:
<?php
if (array_key_exists('blank',$_POST)===FALSE)
{
$blank='';
} else
{
$blank=$_POST['blank'];
}
?>
编辑:我错了。原始答案仅在仅复选框形式的上下文中正确
浏览器不会向服务器发送具有空“值”属性的字段。分配服务器端变量的更好方法是使用带isset()条件的三元运算符:
<?php
$blank = isset($_POST['blank']) ? $POST['blank'] : '' ;
?>
有关php的三元运算符的更多信息:
请参阅“示例#2指定默认值”通过使用$blank=$\u POST['blank']并检查返回为“”的字符串值来解决此问题.Post表单和jquery验证功能。我做了一个测试,它对我来说工作得很好。浏览器不会向服务器发送带有空“value”属性的字段。
-谁说的?+1表示@Col.shrapanel-浏览器会发送空字段。虽然我不记得这是否是规范的一部分。@Carl:我建议在发布答案之前进行测试。“当我们确信某件事时,我们都会犯一个小错误。”斯克里默和你的常识,谢谢。我被纠正了。浏览器确实会向服务器发送带有空“值”属性的字段,除非这些字段属于复选框类型且用户未选中它们。公平地说,我确实测试了这个,但我碰巧使用了一个简单的复选框表单,因为那是我当时打开的文件。不过,今后我会在发帖前尝试更全面。再次感谢。卡尔-请更新您的答案。。。就目前情况而言,这是错误的:——)