• 学习笔记-多数据文章页表单提交和验证-2016.4.8


    //由于文章新增或者其他数据量比较大的表单新增的时候,我们可以先用一条数据来完成新增,如果成功,我们批量复制就行避免造成错误!

    html部分

    <form action="###" method="post" id="main" name="content">
    <table cellspacing="0" class="content">
    <tr><th><strong>发布一条新文档</strong></th></tr>
    <tr><td>文档标题:<input type="text" name="title" class="text" /> <span class="red">[必填]</span> ( * 标题2-50字符之间)</td></tr>
    <tr><td>栏  目:<select name="nav"><option value="">请选择一个栏目类别</option>{$nav}</select> <span class="red">[必选]</span></td></tr>
    <tr><td>定义属性: <input type="checkbox" name="attr[]" value="头条" />头条
    <input type="checkbox" name="attr[]" value="推荐" />推荐
    <input type="checkbox" name="attr[]" value="加粗" />加粗
    <input type="checkbox" name="attr[]" value="跳转" />跳转
    </td></tr>
    <tr><td>标  签:<input type="text" name="tag" class="text" /> ( * 每个标签用','隔开,总长30位之内)</td></tr>
    <tr><td>关 键 字 :<input type="text" name="keyword" class="text" /> ( * 每个关键字用','隔开,总长30位之内)</td></tr>
    <tr><td>缩 略 图 :<input type="text" name="thumbnail" class="text" readonly/>
    <input type="button" value="上传" onclick="centerWindow('../templates/upFile.html.','upFile','400','150')">
    <img name="pic" alt="缩略图" style="display: none;margin-left: 66px"> ( * 必须是jpg,gif,png,大小200KB)
    </td>
    </tr>
    <tr><td>文章来源:<input type="text" name="source" class="text" /> ( * 文章来源20位之内)</td></tr>
    <tr><td>作  者:<input type="text" name="author" class="text" /> ( * 作者10位之内)</td></tr>
    <tr><td><span class="middle">内容摘要:</span><textarea name="info"></textarea> <span class="middle">( * 内容摘要200之内)</span></td></tr>
    <tr><td>
    <!-- 加载编辑器的容器 -->
    <script id="container" name="details" type="text/plain"></script>
    <!-- 配置文件 -->
    <script type="text/javascript" src="../ueditor/ueditor.config.js"></script>
    <!-- 编辑器源码文件 -->
    <script type="text/javascript" src="../ueditor/ueditor.all.js"></script>
    <!-- 实例化编辑器 -->
    <script type="text/javascript">
    var ue = UE.getEditor('container');
    </script>
    </td>
    </tr>
    <tr><td>评论选项:<input type="radio" name="commend" value="1" checked="checked" />允许评论
    <input type="radio" name="commend" value="0" />禁止评论
        浏览次数:<input type="text" name="count" value="100" class="text small" />
    </td></tr>
    <tr><td>文档排序:<select name="sort">
    <option>默认排序</option>
    <option>置顶一天</option>
    <option>置顶一周</option>
    <option>置顶一月</option>
    <option>置顶一年</option>
    </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;消费金币:<input type="text" name="gold" value="0" class="text small" />
    </td></tr>
    <tr><td>阅读权限:<select name="limit">
    <option>开放浏览</option>
    <option>初级会员</option>
    <option>中级会员</option>
    <option>高级会员</option>
    <option>VIP会员</option>
    </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;标题颜色:<select name="color">
    <option value="">默认颜色</option>
    <option value="red" style="color:red;">红色</option>
    <option value="blue" style="color:blue;">蓝色</option>
    <option value="orange" style="color:orange; ">橙色</option>
    </select>
    </td></tr>
    <tr><td><input type="submit" name="send" value="发布文档" onclick="return checkAddContent()" /> <input type="reset" value="重置" /></td></tr>
    <tr><td></td></tr>
    </table>
    </form>

    php控制器部分
    private function add(){
    if(isset($_POST['send'])){
    if (Validate::checkNull($_POST['title'])) Tool::alertBack('警告:标题不得为空!');
    if (Validate::checkLength($_POST['title'],2,'min')) Tool::alertBack('警告:标题长度不得小于两位!');
    if (Validate::checkLength($_POST['title'],50,'max')) Tool::alertBack('警告:标题长度不得大于五十位!');
    if (Validate::checkNull($_POST['nav'])) Tool::alertBack('警告:必须选择一个栏目!');
    if (Validate::checkLength($_POST['tag'],30,'max')) Tool::alertBack('警告:tag标签长度不得大于三十位!');
    if (Validate::checkLength($_POST['keyword'],30,'max')) Tool::alertBack('警告:关键字长度不得大于三十位!');
    if (Validate::checkLength($_POST['source'],20,'max')) Tool::alertBack('警告:文章来源长度不得大于二十位!');
    if (Validate::checkLength($_POST['author'],10,'max')) Tool::alertBack('警告:作者长度不得大于十位!');
    if (Validate::checkLength($_POST['info'],200,'max')) Tool::alertBack('警告:内容摘要不得大于两百位!');
    if (Validate::checkNull($_POST['details'])) Tool::alertBack('警告:详细内容不得为空!');
    if (Validate::checkNum($_POST['count'])) Tool::alertBack('警告:浏览次数必须是数字!');
    if (Validate::checkNum($_POST['gold'])) Tool::alertBack('警告:消费金币必须是数字!');
    if(isset($_POST['attr'])){
    $this->model->attr = implode(',',$_POST['attr']);
    }else{
    $this->model->attr = '无属性';
    }
    $this->model->title = $_POST['title'];
    $this->model->nav = $_POST['nav'];
    $this->model->tag = $_POST['tag'];
    $this->model->keyword = $_POST['keyword'];
    $this->model->thumb = $_POST['thumbnail'];
    $this->model->source = $_POST['source'];
    $this->model->author = $_POST['author'];
    $this->model->info = $_POST['info'];
    $this->model->content = $_POST['details'];
    $this->model->gold = $_POST['gold'];
    $this->model->commend = $_POST['commend'];
    $this->model->count = $_POST['count'];
    $this->model->color = $_POST['color'];
    $this->model->addContent() ? Tool::alert("文档发布成功!",'?action=add') : Tool::alertBack('文档发布失败!');

    }
    $this->tpl->assign('add',true);
    $this->tpl->assign('title','新增文档');
    //获取联级下拉菜单
    /*
    * 使用<optgroup></optgroup>分组获取主菜单
    * 再内容控制器内实例化导航模型
    */
    //初始化一个变量
    $htm = 0;
    $nav = new NavModel();
    //$nav->getAllChildNav();
    foreach($nav->getAllNav() as $object){
    $htm .= '<optgroup label="'.$object->nav_name.'">'." ";
    $nav->id = $object->id;
    if(!!$childNav = $nav->getAllChildNav()){
    foreach($childNav as $obj){
    $htm .= '<option value="'.$obj->id.'">'.$obj->nav_name.'</option>'." ";
    }
    }
    $htm .='</optgroup>';
    }
    $this->tpl->assign('nav',$htm);
    }

    js验证部分
    function checkAddContent() {
    var fm = document.content;
    if (fm.title.value == '' || fm.title.value.length < 2 || fm.title.value.length > 50) {
    alert('警告:标题不得为空并且不得小于两位并且不得大于50位!');
    fm.title.focus();
    return false;
    }
    if (fm.nav.value == '') {
    alert('警告:必须选择一个栏目!');
    fm.nav.focus();
    return false;
    }
    if (fm.tag.value.length > 30) {
    alert('警告:tag标签不得大于30位!');
    fm.tag.focus();
    return false;
    }
    if (fm.keyword.value.length > 30) {
    alert('警告:关键字不得大于30位!');
    fm.keyword.focus();
    return false;
    }
    if (fm.source.value.length > 20) {
    alert('警告:文章来源不得大于20位!');
    fm.source.focus();
    return false;
    }
    if (fm.author.value.length > 10) {
    alert('警告:作者不得大于10位!');
    fm.author.focus();
    return false;
    }
    if (fm.info.value.length > 200) {
    alert('警告:内容摘要不得大于200位!');
    fm.info.focus();
    return false;
    }
    if (fm.details.value == '') {
    alert('警告:详细内容不得为空!');
    fm.details.focus();
    return false;
    }
    if (isNaN(fm.count.value)) {
    alert('警告:浏览次数必须是数字!');
    fm.count.focus();
    return false;
    }
    if (isNaN(fm.gold.value)) {
    alert('警告:消费金币必须是数字!');
    fm.gold.focus();
    return false;
    }
    return true;
    }





  • 相关阅读:
    轻量级分布式任务调度框架(二、LTS编译、打包、部署)
    轻量级分布式任务调度框架(一、LTS简介、特点、工作流程)
    MySQL数据库学习一
    Navicat 连接 SQL Server 数据库,报错 08001
    noVNC 遇到一个错误: Uncaught TypeError: Cannot read property 'forEach' of undefined
    加强自己VPS服务器安全的一次经历
    Python 编码错误的本质和解决方案
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'data' at line 1
    requests爬虫请求报错:UnicodeEncodeError: 'latin-1' codec can't encode character 'u2026' in position 30
    docker无法删除镜像,Error: No such container,附docker常用命令
  • 原文地址:https://www.cnblogs.com/lanxiaoyu/p/5366358.html
Copyright © 2020-2023  润新知