Php 有没有更优雅的方法来检查表单的默认值?
我正在寻找一种更好、更干净、更优雅的方法来使用PHP检查表单的默认值 例如,假设这是我的HTML(我的表单字段之一): 现在,假设用户没有编辑此字段,这意味着变量“compName”将等于“在此处输入业务名称(必需)” 现在,假设我想把它记录到一个db或者别的什么东西上,显然我不想记录默认值,所以我可以这样做Php 有没有更优雅的方法来检查表单的默认值?,php,html,Php,Html,我正在寻找一种更好、更干净、更优雅的方法来使用PHP检查表单的默认值 例如,假设这是我的HTML(我的表单字段之一): 现在,假设用户没有编辑此字段,这意味着变量“compName”将等于“在此处输入业务名称(必需)” 现在,假设我想把它记录到一个db或者别的什么东西上,显然我不想记录默认值,所以我可以这样做 if($compName == "Enter Business Name here (required)" ){ $compName = ""; } or if($comp
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个表单字段,每个表单字段都有自己的默认值,那么我必须编写大量代码、大量if/else语句来检查每个表单字段的默认值。这会很快变得臃肿和难以控制
是否有一个函数或任何东西可以检查HTML表单的默认值?像一个包罗万象的函数
例如,假设这个函数存在并且它的名称为“$\u MYCATCHALLFUNC()”,那么id仍然像normal一样将所有表单值收集到它们各自的变量中,但是我可以这样做
<input type="text" name="compName" value="" placeholder="Enter Business Name here (required)" required="true" />
例如:
$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有类似的功能吗?您将一次又一次地重复自己的操作
/*
* 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;
}
}
使用占位符向用户提供有关该输入字段的信息
<input type="text" name="compName" placeHolder="Enter Business Name here (required)">
在PHP上检查是否设置了此字段。详细说明@HAL9000的评论,最好且更安全的方法是使用HTML5中的新字段: 要显示HTML,请使用
占位符和required
属性,如下所示
<input type="text" name="compName" value="" placeholder="Enter Business Name here (required)" required="true" />
首先,我会在html页面上正确使用一些jQuery表单验证器,因为这样用户就可以在提交到新页面之前纠正错误。当我们处于HTML部分时,我会使用占位符标记而不是值,因为占位符文本不会随表单一起发送
检查用户是否在字段中输入了内容的一种简单方法是使用函数empty进行检查
foreach($allMyVarsToCheck as $var){
if(!empty($var)){
return true;
}else{
return false;
}
HTML5占位符
&必需
+PHP?@HAL9000旧浏览器(或黑客)仍然可以发送空参数(或根本不发送)。@MarcelKorpel空参数是什么意思?我不是建议盲目信任用户输入。@HAL9000您的评论是什么意思?@MarcelKorpel我的意思是保留选项,允许向服务器端部分提交占位符值,并检查提交的值是否仅为空,然后检查业务逻辑的有效性。提交占位符似乎很难看。。。如果他们只删除一个字符呢?
<?php
if (empty($_POST["compName")) {
// empty field handling
}
foreach($allMyVarsToCheck as $var){
if(!empty($var)){
return true;
}else{
return false;
}