2012-12-01 71 views
2

我是新来的所以希望我尊重协议;-)

这里有一个简单的问题,对于一些原因,我解决不了以前的默认值。

我有一个表单调用一个php文件,以及几个文本输入字段与默认值设置。例如:

<form class="form-horizontal" method="post" action="profile.php"> 
<input type="text" class="input-xlarge" id="q-2-Address" name="q-2-Address" value="Park Avenue"> 
<button type="submit" class="btn btn-primary">Save changes</button> 
</form> 

如果我提交表单保留默认值不变,$_POST['q-2-Address']包含默认的“公园大道”作为预期。

如果我尝试更改输入文本字段中的值(例如:“麦迪逊大道”),我可以看到$_POST['q-2-Address']中的结果被设置为“麦迪逊大街”,如预期的那样。

但是,如果我尝试通过删除所有文本来清除值,则$_POST['q-2-Address']不是空白,事实上可以回到包含最初设置为“Park Avenue”的默认值。

因此,如果我想通过用空白替换先前填充的字段来更新表单,这似乎是不可能的,也不可能检测到该字段已被清除。我尝试使用empty()进行测试,但它当然会给出错误结果,$_POST包含默认值,因此即使文本字段为空也不为空。

由于我没有进入像单个空间这样的东西,我没有看到实际清除字段的方法。

这是件小事,但也许有人对此有所了解。

TIA

迈克

+2

发布你的PHP代码 –

+0

@Muthu,现在想象的代码很简单:<?PHP的echo $ _ POST [ 'Q-2-地址']> ......当默认值被替换为无(清除),POST变量仍然显示默认值 –

+0

OK算出来了。感谢您的帮助。上面的例子确实显示一个空白。我有一些验证程序正在破坏数值。我的错! –

回答

0

而不是使用表单中的默认值,你可以使用一个占位符...

<form class="form-horizontal" method="post" action="profile.php"> 
<input type="text" class="input-xlarge" id="q-2-Address" name="q-2-Address" placeholder="e.g. Park Avenue"> 
<button type="submit" class="btn btn-primary">Save changes</button> 
</form> 

这样的话,你可以给你一个例子希望在特定的输入框中使用,而不使用默认文本,这些文本将被php代码拾取。

这里是占位符看起来像jsfiddle。

http://jsfiddle.net/bfwst/

+0

IE不支持占位符 –

+0

你可以使用jQuery工具来解决这个问题,例如https://github.com/miketaylr/jQuery-html5-placeholder/blob/master/html5placeholder.jquery.js – nerdarama

+0

快速响应....我正在做的是显示MySQL表的内容,并允许用户更新它,或者通过更改内容或删除它。如果我将当前内容放置在占位符中,则用户再次输入空白......即从帖子中,我无法分辨用户是否尝试删除内容或使其保持不变。因此,占位符在这里不可用... –