我想在数据库中保存带有验证规则的自定义html表单。
假设我有一个包含自定义字段和不同元素的表单,例如:select,checkbox,radio,text box。所有这些元素将作为表单保存到数据库中,因此我将能够轻松地将此表单集成到我的网站上的任何位置。
答案 0 :(得分:0)
您可以将html代码保存在col中,而在另一个列中,您可以保存json数据以用于验证选项。 例如:
<input type="text" name="username" />
<input type="password" name="pass" />
验证:
$validation = array(
'username' => array(
'regex' => '/\w{6,12}/',
'error' => 'Username must be 6 - 12 chars'
),
'pass' => array(
'func' => 'validate_password',
'error' => 'Week password'
)
);
$validation_json_for_db = json_encode( $validation );
使用示例:
// may be need to receive from db and json_decode parse
$validation = array(
'username' => array(
'regex' => '/\w{6,12}/',
'error' => 'Username must be 6 - 12 chars'
),
'pass' => array(
'func' => 'validate_password',
'error' => 'Week password'
)
);
$valid_errors = array();
foreach( $validation as $key => $val ){
if( isset( $_POST[$key] ) ){
$isValid = false;
if( isset( $val['func'] ) ){
$isValid = call_user_func( $val['func'], $_POST[$key] );
} elseif( isset( $val['regex'] ){
$isValid = preg_match( $val['regex'], $_POST[$key] );
}
if( ! $isValid ){
$valid_errors[$key] = $val['error'];
}
}
}