先在模块方法里引入系统表单类:pc_base::load_sys_class('form', '', 0);
(注:在前台模板用 {} 将变量包括起来,在后台模板只能用<?php ?>)
1.图形验证码:
<input name="code"type="text"id="code"/>{form::checkcode('code_img','4','14',110,30)}
注:code_img 字段名称; 4 显示4位验证码;14 字体大小; 110 长;30 高。
2.简化版编辑器:
<textarea name="ly[content]"id="content2"></textarea>{form::editor('content2')}
注:content2 textarea 的id值。全版编辑器:{form::editor('content2','full')}
3.日期控件:
开始日期:<?php echo form::date('start_time', $start_time,$time)?>
注:start_time 字段名称;$start_time 默认值。$time 是否显示时分秒,默认不显示0
4.下拉选择框:
类型:<?php echo form::select($data_arr, $selected_data, 'name="type"','请选择')?>
注:$data_arr 下拉选项,一维数组;$selected_data 选中值;'请选择' 默认显示值。
5.后台调用“文件上传框”:
上传头像:{form::images('data[mypic]', 'upload_id', '', 'guestbook', '', 40)}
注:'mypic' 字段名称;'upload_id' 上传字段id;'guestbook' 模块名称;40输入框长度。
以下js中的formid:的值必须是表单id。
然后引入以下js:
<scripttype="text/javascript">
$(document).ready(function(){
$.formValidator.initConfig({formid:"myform",autotip:true,onerror:function(msg,obj){window.top.art.dialog({content:msg,lock:true,width:'220',height:'70'},function(){this.close();$(obj).focus();})}});
//若上传文件是非必填字段,注释$('#upload_id')函数代码即可。
$('#upload_id').formValidator({autotip:true,onshow:"<?phpecho L('please_upload_banner')?>",oncorrect:"<?php echoL('true')?>"}).inputValidator({min:1,onerror:"<?php echoL('please_upload_banner')?>"});
});
</script>
在后台接收其他数据,并插入数据库后,返回$id,然后执行下面代码:
$data = $_POST['data'];
//更新附件状态
if(pc_base::load_config('system','attachment_stat')){
$this->attachment_db= pc_base::load_model('attachment_model');
$this->attachment_db->api_update(array($data['mypic']),'guestbook-'.$id,1);
}
6.多选框:
<?php echoform::checkbox($test_data,$admininfo,'name="admininfo[]"','',50);?>
$test_data 一维数组,键值就是显示的文字;$selected字符串 选中值;
'name=" adminInfo[]"' 数组 字段名称;120 选项宽度。
后台接收:
$_POST['reply']['admininfo'] =array2string($_POST['admininfo']);
编辑显示:
$test_data = array('name' => '刘付','sex'=> '男','addr' => '天河');
extract($info);
$admininfo = string2array($admininfo);
$admininfo =$this->implode_ids($admininfo);
/**
* 将数组转为字符串
*@param $array 一位数组
*/
privatefunction implode_ids($array, $flags = ',') {
if(empty($array))return true;
$length= strlen($flags);
$string= '';
foreach($arrayas $_v) {
$string.= $_v.$flags;
}
returnsubstr($string,0,-$length);
}
7.单选框:
<?php echo form::radio($radios, $selected_val,'name="reply[passed]"',80)?>
注:$radios 一维数组;$selected_val 选中值;'name="reply[passed]"' 字段名称;80宽度。