1、常用表单控件
<!--常用表单控件-->
<input type="text" />文本输入框
<input type="password" />密码输入框
<textarea>文本区域</textarea>
<input type="button" />普通按钮
<input type="submit" value="提交按钮" />
<input type="reset" value="重置按钮" />
<input type="radio" />单选按钮
<input type="checkbox" />复选框
<select>
<option>选择列表</option>
<optgroup><option>下拉子菜单</option></optgroup>
</select>
<input type="image" />图像
<input type="file" />文件提交
<input type="hidden" />隐藏域
2、表单验证(单选框、下拉菜单、复选框)
//表单验证(单选框、下拉菜单、复选框)
//定义数组$city保存预设的城市下拉列表
$city=array('北京','上海','广州','深圳','其他');
//定义数组$skill保存预设的语言技能复选框
$skill=array('HTML','PHP','Python','NLP');
//判断是否有表单数据提交
if(!empty($_POST)){
//收集表单数据,保存到数据库中
$fields=array('nickname','gender','email','qq','url','city','skill','description');//指定需要接收的表单数据
foreach($fields as $v){
//$save_dats保存$_POST中的指定字段数据,不存在的字段填充空字符串
$save_data[$v]=isset($_POST[$v])?$_POST[$v]:'';
}
//单选框处理radio
if($save_data['gender']!='男' && $save_data['gender']!='女'){
die('保存失败:未选择性别。');
}
//下拉菜单处理select
if($save_data['city']!='未选择' && !in_array($save_data['city'],$city)){
die('保存失败:您填写的城市不在允许的城市列表中。');
}
//复选框处理checkbox
if(is_array($save_data['skill'])){
//只取出合法的数组元素
$save_data['skill']=array_intersect($skill,$save_data['skill']);
//将数组转化为用“,”分隔的字符串
//Array ([0] => HTML[1] => PHP[3] => NLP ) 到'HTML,PHP,NLP'
$save_data['skill']=implode(',',$save_data['skill']);
}else{
$save_data['skill']='';
}
//通过循环数组自动拼接SQL语句,保存到数据库中
$sql="update `userinfo` set ";
foreach($save_data as $k=>$v){
$sql .="`$k`='".mysql_real_escape_string($v)."',";
}
//rtrim($sql,',')去除$sql中的最后一个逗号
$sql=rtrim($sql,',')." where id=$id";
$res=query($sql);
//输出执行结果和调试信息
echo $res ? "保存成功:$sql" : "保存失败:$sql<br>".mysql_error();
}
5、单选框、下拉菜单、复选框生成函数
<?php
header('Content-Type:text/html; charset=utf-8');
//单选按钮生成函数
//$name单选按钮的name属性,$arr单选按钮数组,$checked选中的单选按钮的值
function radio_html($name,$arr,$checked){
$html = '';//$html保存拼接的HTML
if(is_array($arr)) {
foreach($arr as $v){
if($checked==$v){
$html .="<input type=\"radio\"name=\"$name\"value=\"$v\"checked />$v";
}else{
$html .="<input type=\"radio\"name=\"$name\"value=\"$v\" />$v";
}
}
}else{
print_r($arr);
}
return $html;
}
$fruits=array('苹果','香蕉','橘子','番茄');
echo radio_html('fruit',$fruits,'香蕉');
/*------------------------------------------------------------*/
//下拉菜单生成函数
//$arr下拉菜单数组,$checked默认选中的下拉菜单的的值
function select_html($arr,$checked){
$html = '';
echo "所在城市<select>";
foreach($arr as $v){
echo "$v";
if($checked==$v)
{
$html .="<option value=\"$v\" selected>".$v."</option>";
}else{
$html .="<option value=\"$v\">".$v."</option>";
}
}
return $html;
echo "</select>";
}
$city=array('北京','上海','广州','深圳','其他');
echo select_html($city,'北京');
/*------------------------------------------------------------*/
//复选框生成函数
//$name复选框的name属性,$arr预设的可选数组,$checked选中的数组
//参考:https://blog.csdn.net/kim5659/article/details/103736578
function checkbox_html($name,$arr, $checked) {
$html = '';//$html保存拼接的HTML
foreach($arr as $k=>$v) {
$html .= "<input type=checkbox ";
if (in_array($v, $checked)){
$html .= "checked ";
}
$html .= "name=\"{$name}[$k]\"value=\"$v\">";//注意{$name}[$k]
$html .= $v ."<br>";
}
return $html;
}
$arr=array('HTML','PHP','Python','NLP');
$checked=array('HTML','PHP');
echo checkbox_html('checked',$arr,$checked);