接上一篇博文繼續貼。
十一、修改js文件,執行提交事件 javascript
$('#send-btn').click(function(){ //驗證暱稱和內容不能爲空 var obj_username=$('#username'); var obj_content=$('#content'); var username=obj_username.val(); var content=obj_content.val(); if(username==''){ alert('用戶名不能爲空'); obj_username.focus(); return; } if(content==''){ alert('許願內容不能爲空'); obj_content.focus(); return; } $.post(handleUrl,{username:username, content:content}, function(data){ if(data.status){ var str='<dl class="paper a1">'; str+='<dt><span class="username">'+data.username+'</span>'; str+='<span class="num">No.'+data.id+'</span>'; str+='</dt><dd class="content">'+data.content+'</dd>'; str+='<dd class="bottom">'; str+='<span class="time">'+data.time+ '</span>'; str+='<a href="" class="close"></a></dd></dl>'; $('#main').append(str); $('#close').click(); }else{ alert('發佈失敗'); } }, 'json'); });十二、上一步中用到的handleUrl在Index_index.html中定義。
<script type="text/javascript"> var handleUrl='{:U("/Index/Index/handle","","")}'; </script>之因此定義在這裏,而不是直接定義在index.js裏,是由於index.js裏面不能解析php方法,而模板頁面裏面能夠。
public function handle(){ if(!IS_AJAX){ halt('頁面不存在'); } $data = array( 'username' => I('username'), 'content' => I('content'), 'time' => time() ); if($id=M('wish')->data($data)->add()){ $data['id']=$id; $data['content'] =replace_phiz($data['content']); $data['time']=date('y-m-d H:i', $data['time']); $data['status']=1; $this->ajaxReturn($data, 'json'); } else{ $this->ajaxReturn(array('status' => 0), 'json'); } }1四、halt也能夠用_404,做用同樣。還能夠自定義錯誤頁面。
//指定錯誤頁面模板路徑 'TMPL_EXCEPTION_FILE' => './Public/Tpl/error.html',而後在相應路徑下建立錯誤信息頁:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascript"> window.onload=function(){ setTimeout(function(){ window.location.href='<?php echo __APP__;?>'; },5000); } </script> </head> <body> <div> <p><?php echo $e['message'];?></p> <div> 頁面將在5秒後跳轉 或者點擊<a href="<?php echo __APP__;?>"> 返回首頁</a> </div> </div> </body> </html>至此完成了一個ajax方式的數據提交,和接收數據後插入數據庫並返回信息提示的操做。