Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从$\u POST数据中获取空白表单值,是否将名称添加为值?(jquery验证ajax)_Php_Ajax_Forms_Validation - Fatal编程技术网

Php 无法从$\u POST数据中获取空白表单值,是否将名称添加为值?(jquery验证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=""/>

我使用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" 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:我建议在发布答案之前进行测试。“当我们确信某件事时,我们都会犯一个小错误。”斯克里默和你的常识,谢谢。我被纠正了。浏览器确实会向服务器发送带有空“值”属性的字段,除非这些字段属于复选框类型且用户未选中它们。公平地说,我确实测试了这个,但我碰巧使用了一个简单的复选框表单,因为那是我当时打开的文件。不过,今后我会在发帖前尝试更全面。再次感谢。卡尔-请更新您的答案。。。就目前情况而言,这是错误的:——)