2011-08-24 69 views
-1

我使用JQuery验证和Ajax发布形式,但要发布一个空白的领域与我的数据和正在使用:

<input type="text" name="blank" class="blank" /> 

当PHP发送形式这一领域发布$ _POST ['blank']的值为“空白”,而不是“”,如预期的那样。

这也是情况下,如果我尝试

<input type="text" name="blank" class="blank" value=""/> 

如果我用这个:

<input type="text" name="blank" class="blank" value="this_value"/> 

我得到的 “this_value” 为$ _ POST [ '空白']预期。

除了空白字段使用与其名称相匹配的值而不是空白值进行发布之外,其他所有功能都可以完美地工作在表单上。

有没有人遇到过这种情况并知道补救措施?

+0

通过使用$ blank = $ _POST ['blank']来解决这个问题,并检查返回为“”的字符串值。 – Incredibus

+0

发布表单和jQuery验证功能。 –

+0

我做了一个测试,它对我来说很完美[http://codepad.org/74Tc1vW7](http://codepad.org/74Tc1vW7) – Einacio

回答

-1

我也碰到过在此之前,对我最简单的方法是尝试找一个字段是否存在于$ _ POST,如果没有,假设它是空白:

<?php 
if (array_key_exists('blank',$_POST)===FALSE) 
{ 
    $blank=''; 
} else 
{ 
    $blank=$_POST['blank']; 
} 
?> 
-1

编辑:我错了。原始答案仅适用于仅限复选框的表单。

浏览器不会向服务器发送具有空“值”属性的字段。分配服务器侧变量A更好的方法是使用三元运算用isset()函数条件:

<?php 
    $blank = isset($_POST['blank']) ? $POST['blank'] : '' ; 
?> 

更多关于PHP的三元运算符:http://us3.php.net/ternary#language.operators.comparison.ternary 参见“实施例#2分配默认值”

+2

'浏览器不会向服务器发送带有'value'属性的空字段。 ' - 谁说的? –

+1

+1 @Col.Shrapnel - 浏览器_do_发送空字段。虽然我不记得这是否是规范的一部分。 – scraimer

+0

@Carl:我建议在发布答案前进行测试。当我们确信某件事发生时,我们都会发生这种情况,那么我们可能会犯一个小错误。 – scraimer