学习笔记-多数据文章页表单提交和验证-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;
}





原文地址:https://www.cnblogs.com/lanxiaoyu/p/5366358.html