//由于文章新增或者其他数据量比较大的表单新增的时候,我们可以先用一条数据来完成新增,如果成功,我们批量复制就行避免造成错误!
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> 消费金币:<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> 标题颜色:<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.‘">‘."\r\n"; $nav->id = $object->id; if(!!$childNav = $nav->getAllChildNav()){ foreach($childNav as $obj){ $htm .= ‘<option value="‘.$obj->id.‘">‘.$obj->nav_name.‘</option>‘."\r\n"; } } $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;}
时间: 2024-10-08 14:15:47