php - 有更优雅的方式来检查表单默认值吗?

时间:2013-12-29 14:43:16

标签: php html

我正在寻找一个更好/更清洁的&使用php检查表单默认值的更优雅方法。我有点像Noob所以请光临我。

举个例子,假设这是我的HTML(我的一个表单字段):

<input type="text" name="compName" value="Enter Business Name here (required)">

在PHP方面,假设我有这个变量收集这个字段数据,如下所示:

$compName = $_GET['compName']);

现在,假设用户单独离开此字段并且没有编辑它,这意味着变量“ compName ”将等于“在此输入商家名称(必需) )”。

现在,说我想将此记录到数据库或其他东西,显然我不想记录默认值,所以我可以做类似的事情

if($compName == "Enter Business Name here (required)" ){
     $compName = "";
}

or


if($compName == "Enter Business Name here (required)" ){
     $compName = // make it some kind of default value etc
}

现在,假设我有20个表单字段,每个字段都有自己的默认值,id必须编写大量代码,很多if / else语句检查每个表单字段的默认值。这可能会变得臃肿和难以驾驭!

是否有函数或任何检查HTML表单默认值的内容?像抓住所有功能???

例如,假设此函数存在且名为“$ _MYCATCHALLFUNC()”,那么id仍会将所有表单值收集到各自的变量中,就像正常一样,但是,我可以做这样的事情

示例:

$variable1 = $_GET['value here'];
$variable2 = $_GET['value here'];
$variable3 = $_GET['value here'];

$allMyVarsToCheck = array($variable1, $variable2, $variable3);

foreach($allMyVarsToCheck as $varsChecked){
     if($_MYCATCHALLFUNC( $varsChecked ){
         //do something
     }
}

有什么类似的可用于PHP吗? 谢谢你提前。

4 个答案:

答案 0 :(得分:2)

使用占位符向用户提供有关该输入字段的信息

<input type="text" name="compName" placeHolder="Enter Business Name here (required)">

并在PHP中检查是否设置了此字段。

答案 1 :(得分:2)

阐述@ HAL9000的评论,最好和更安全的未来方法是利用HTML5中的新字段:

要显示HTML,请使用placeholderrequired属性,例如

<input type="text" name="compName" value="" placeholder="Enter Business Name here (required)" required="true" />

在接收提交的PHP代码中,提交表单时字段将为空,而不填写字段(浏览器支持required属性see here for an example除外),在这种情况下将提示用户填写该字段),因此您可以这样检查:

<?php
if (empty($_POST["compName")) {
    // empty field handling
}

答案 2 :(得分:1)

你会一次又一次地重复你的自我。

/* 
 * Field name => field default value
 * If you have different languages on sites, you can use here function to translate
 * phrases like __()
 */
$defaultValues = array(
'compName' => __('Enter Business Name here (required)')
)

foreach($defaultValues as $filed => $value)
{
      if($_GET[$field] === $value)
      {
         $_GET[$field] = NULL;
      }
}

答案 3 :(得分:1)

首先,我会在html页面上正确使用一些jQuery表单验证器,因为这使用户可以在提交到新页面之前纠正错误。虽然我们处于HTML的一部分,但我会使用占位符标记而不是值,因为占位符文本不会随表单一起发送。

检查用户是否在字段中输入内容的一种简单方法是使用空函数进行检查。

foreach($allMyVarsToCheck as $var){
 if(!empty($var)){
    return true;
 }else{
    return false;
 }