Discuz后台页面函数之表单函数

2021-03-21 908 0条评论
// 输出表单头函数
function showformheader($action, $extra = '', $name = 'cpform', $method = 'post')
// 输出表单尾函数
function showformfooter()
// 输出表单项函数,如text radio checkbox等
function showsetting($setname, $varname, $value, $type = 'radio', $disabled = '', $hidden = 0, $comment = '', $extra = '', $setid = '', $nofaq = false)
// 输出提交按钮函数
function showsubmit($name = '', $value = 'submit', $before = '', $after = '', $floatright = '', $entersubmit = true) {
// 输出表格头和尾,因为表单项是以表格形式输出的,所以需要输出到表格里
function showtableheader($title = '', $classname = '', $extra = '', $titlespan = 15)
function showtablefooter()


1. showformheader

 - $action 提交的地址,注意这里地址填写的格式,只需要填写url里action=之后的部分就行了,比如我后台某个页面地址是http://dev.nciaer.com/admin.php?action=plugins&operation=config&do=4&identifier=nciaer_a&pmod=admin,那么action变量的值是plugins&operation=config&do=4&identifier=nciaer_a&pmod=admin,这个do是个变量,应该通过$_GET['do']来动态获取

 - $extra 额外的参数,如果它的值是enctype,那么生成的表单那会加上enctype="multipart/form-data",其实就是文件上传,如果是其它值则原样输出

 - $name 表单的名字和id设置,统一设置

 - $method 提交方法,默认是post

2. showformfooter 只是单纯输出form的闭合标签

3. showsubmit 输出提交按钮

 - $name 表单的名字

 - $value 表单的值,也就是按钮的文字,submit对应的语言包是提交,我们可以改成发布,搜索啥的 

4. showsetting 输出各种表单项,这个下面再讲解,内容太多



实例演示

showformheader("plugins&operation=config&do=4&identifier=haozi_chajian&pmod=admin", '', 'myform');
showtableheader();
showsetting('用户uid', 'userid', $uid, 'text', '', 0, '这是里提示信息');
showsetting('单身', 'alone', 0, 'radio', '', 0, '是否单身');
showsubmit('dosubmit', '发布');
showtablefooter();
showformfooter();
// 生成的代码
<form name="myform" method="post" autocomplete="off" action="admin.php?action=plugins&operation=config&do=4&identifier=nciaer_a&pmod=admin" id="myform" >
    <input type="hidden" name="formhash" value="76f7aae7" />
    <input type="hidden" id="formscrolltop" name="scrolltop" value="" />
    <input type="hidden" name="anchor" value="" />
    <table class="tb tb2 ">
        <tr>
            <td colspan="2" class="td27" s="1">用户uid:</td>
        </tr>
        <tr class="noborder" onmouseover="setfaq(this, 'faq8465')">
            <td class="vtop rowform">
                <input name="userid" value="" type="text" class="txt"   />
            </td>
            <td class="vtop tips2" s="1">这是里提示信息</td>
        </tr>
        <tr>
            <td colspan="2" class="td27" s="1">单身:</td>
        </tr>
        <tr class="noborder" onmouseover="setfaq(this, 'faqfbe3')">
            <td class="vtop rowform">
                <ul onmouseover="altStyle(this);">
                    <li>
                        <input class="radio" type="radio" name="alone" value="1" >&nbsp;是
                    </li>
                    <li class="checked">
                        <input class="radio" type="radio" name="alone" value="0" checked>&nbsp;否
                    </li>
                </ul>
            </td>
            <td class="vtop tips2" s="1">是否单身</td>
        </tr>
        <tr>
            <td colspan="15">
                <div class="fixsel">
                    <input type="submit" class="btn" id="submit_dosubmit" name="dosubmit" title="按 Enter 键可随时提交您的修改" value="发布" />
                </div>
            </td>
        </tr>
        <script type="text/JavaScript">_attachEvent(document.documentElement, 'keydown', function (e) { entersubmit(e, 'dosubmit'); });</script>
    </table>
</form>


最终效果


表单项showsetting详解
$setname 表单上方的标题,如图片里的用户uid
$varname 表单的name值
$value 表单的值
$type 表单类型,有text文本框,radio开关,htmltext 有html属性的文本框,filetext文件上传,textarea等
$disabled 是否禁用,值有readonly 只读,disabled 禁用
$hidden 是否隐藏? 不知道干啥的目前
$comment 提示信息,表单右侧的提示信息
$extra 设置额外信息
$setid 设置id?不知道干啥的
$nofaq 记得之前有用,3.4里貌似不管事了
表单类型
1.text 生成一个文本框,还有其它值如password密码框,number数字框
showsetting(‘用户uid’, ‘userid’, $uid, ‘text‘, ”, 0, ‘这是里提示信息’);
2. radio 生成是否的开关两个单选框
showsetting(‘单身’, ‘alone’, 0, ‘radio‘, ”, 0, ‘是否单身’);
3. textarea 文本框
showsetting(‘自我介绍’, ‘intro’, ”, ‘textarea‘, ”, 0, ‘请介绍下自己吧,150字内’);
4. htmltext 带格式控制的文本框
showsetting(‘签名档’, ‘sign’, ”, ‘htmltext’, ”, 0, ‘填写您的签名’);
5. file 文件上传
showsetting(‘上传头像’, ‘avatar’, ”, ‘file’, ”, 0, ‘请选择您的头像’);
6. filetext 文件上传或者文本框,也就是可以上传,也可以填入链接,比如广告图片,可以上传也可以输入远程链接
showsetting(‘上传banner’, ‘banner’, ”, ‘filetext’, ”, 0, ‘请选择您的banner’);
7. select 下拉选择
§education = array(
‘education’, // select的名字
array( // option像
array(‘1’, ‘专科’),
array(‘2’, ‘本科’),
array(‘3’, ‘研究生’),
)
);
showsetting(‘请选择学历’, $education, ‘2’, ‘select’, ”, 0, ‘请选择您的学历’); // 2就是默认的选中项
8. calendar 日历表单
showsetting(‘请选择日期’, ‘date’, ”, ‘calendar’, ”, 0, ‘请选择日期’, 1); // 如果extra值是1,则显示时间,否则不显示
echo ‘<script type=”text/javascript” src=”static/js/calendar.js”></script>’; // 引入日历js文件
9. color 颜色选择框
showsetting(‘请选择颜色’, $color, ‘#ccc’, ‘color’, ”, 0, ‘请选择颜色’);


文章版权及转载声明

本文作者:符文浩 网址:http://blog.fuwenhao.com/post/421.html 发布于 2021-03-21
文章转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:

评论列表 (暂无评论,908人围观)参与讨论

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码