成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

thinkphp中使用ajax方法嗎

thinkphp中使用ajax方法;thinkphp使用ajax和PHP使用ajax的方法一樣,不同點(diǎn)在于PHP的ajax中的url指向了一個(gè)頁(yè)面,而thinkphp里面的url需要指向一個(gè)操作方法,可以利用ajax返回指定的數(shù)據(jù),返回?cái)?shù)據(jù)類(lèi)型的修改等。

thinkphp中使用ajax方法嗎

本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP5版、Dell G3電腦。

thinkphp中使用ajax方法嗎

thinkphp中使用ajax方法

thinkphp使用ajax和之前使用ajax的方法一樣,不同點(diǎn)在于之前的ajax中的url指向了一個(gè)頁(yè)面,而thinkphp里面的url需要指向一個(gè)操作方法。

一、thinkphp使用ajax返回?cái)?shù)據(jù)

1.先在A(yíng)dminControllerMainController.class.php里面寫(xiě)一個(gè)方法 

public function testajax()//ajax測(cè)試方法     {         $this->show();     }

2.在A(yíng)dminViewMain文件夾里面建對(duì)應(yīng)的顯示頁(yè)面testajax.html

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script><!--jquery文件放在public/js里面。__PUBLIC__找到public目錄--> <title>無(wú)標(biāo)題文檔</title> </head> <body>     <select id="nation"></select> </body> <script type="text/javascript">         $.ajax({             url:"__CONTROLLER__/ajaxchuli",//這里指向的就不再是頁(yè)面了,而是一個(gè)方法。             data:{},             type:"POST",             dataType:"JSON",             success: function(data){                 //alert(data[0].code);//這里要用索引,使用eq讀取不出來(lái)數(shù)據(jù)。                 var str="";                 for(a in data)                 {                     str = str+"<option value='"+data[a].code+"'>"+data[a].name+"</option>";                 }                 $("#nation").html(str);             }         }) </script>

3.在A(yíng)dminControllerMainController.class.php里面寫(xiě)ajax處理的方法

public function ajaxchuli()     {         $n = D("Nation");//造一個(gè)nation表的模型對(duì)象         $attr = $n->select();                  $this->ajaxReturn($attr);//ajax返回?cái)?shù)據(jù)的方式,用ajaxReturn。     }

4.這樣就把數(shù)據(jù)顯示在了頁(yè)面

二、ajax返回?cái)?shù)據(jù)類(lèi)型的修改

在thinkphp中ajax默認(rèn)的是返回JSON數(shù)據(jù),可以通過(guò)配置DEFAULT_AJAX_RETURN進(jìn)行設(shè)置,設(shè)置方式如下

// 指定XML格式返回?cái)?shù)據(jù) $data['status'] = 1; $data['content'] = 'content'; $this->ajaxReturn($data,'xml');

如果是XML方式,會(huì)自動(dòng)編碼成XML字符串,如果是EVAL方式的話(huà),只會(huì)輸出字符串data數(shù)據(jù)。

示例:

public function ajaxchuli() { $this->ajaxReturn("hello","eval");//將返回?cái)?shù)據(jù)的類(lèi)型更改成字符串 }

同時(shí)也要講ajax里面的數(shù)據(jù)類(lèi)型改為T(mén)EXT

<script type="text/javascript">         $.ajax({             url:"__CONTROLLER__/ajaxchuli",//這里指向的就不再是頁(yè)面了,而是一個(gè)方法。             data:{},             type:"POST",             dataType:"TEXT",             success: function(data){                 alert(data);//輸出結(jié)果就是hello             }         }) </script>

三、用ajax和create(自動(dòng)收集表單)向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)

1.先寫(xiě)訪(fǎng)問(wèn)的方法

public function addajax()     {         $this->show();     }

2.寫(xiě)訪(fǎng)問(wèn)的頁(yè)面

<body> <div>代號(hào):<input type="tel" id="code" /></div> <div>名稱(chēng):<input type="tel" id="name" /></div> <div><input type="button" id="btn" value="添加" /></div> </body> <script type="text/javascript"> $("#btn").click(function(){         var code = $("#code").val();         var name = $("#name").val();         $.ajax({                 url:"__CONTROLLER__/addchuli",                 data:{Code:code,Name:name},//要用create方法,這里的列名就要和數(shù)據(jù)庫(kù)中的列名一樣,這里的首字母要大寫(xiě)。                 type:"POST",                 dataType:"TEXT",                 success: function(data){                     alert(data);                 }             })     }) </script>

3.寫(xiě)ajax處理的方法

public function addchuli()     {         $n = D("Nation");         $n->create();//自動(dòng)收集表單         $r = $n->add();//調(diào)用添加的方法         if($r)         {             $this->ajaxReturn("OK","eval");//如果添加成功輸出“OK”,eval代表數(shù)據(jù)類(lèi)型為字符串。         }         else         {             $this->ajaxReturn("NO","eval");//如果添加失敗,就輸出”NO“。         }     }

四、thinkphp中用ajax做分頁(yè)。主要注意第三方類(lèi)怎么引用。

1.先做一個(gè)方法xianshi();

public function xianshi()     {         $n = D("chinastates");//造chinastates表的對(duì)象         $shuliang = $n->count();//取出數(shù)據(jù)的總條數(shù)         $page = new HomelibsPage($shuliang,15);//將page文件類(lèi)引入。()里面需要參數(shù),第一個(gè)參數(shù)是數(shù)據(jù)的總數(shù)量,第二個(gè)是每頁(yè)顯示多少條數(shù)據(jù)。所以上面要先求出數(shù)量。                  $xinxi = $page->fpage();                          $attr = $n->limit($page->limit)->select();//查詢(xún)出所有數(shù)據(jù),limit(0,15),需要修改Page.class.php文件中的第57行$this->limit = "LIMIT ".$this->setLimit();,將 "LIMIT ".去掉,如果不去掉的話(huà),將會(huì)顯示limit(limit(0,15)),度了1個(gè)limit。         $this->assign("shuju",$attr);//將查詢(xún)出的數(shù)據(jù)都注入顯示頁(yè)面         $this->assign("xinxi",$xinxi);         $this->show();//調(diào)用顯示方法在顯示頁(yè)面顯示。     }

2.做顯示頁(yè)面

<body> <table width="100%" border="1" cellpadding="0" cellspacing="0">     <tr>         <td>代號(hào)</td>         <td>名稱(chēng)</td>         <td>父級(jí)代號(hào)</td>     </tr>     <foreach name="shuju" item="v" >      <tr>         <td>{$v.areacode}</td>         <td>{$v.areaname}</td>         <td>{$v.parentareacode}</td>     </tr>     </foreach> </table> <div>{$xinxi}</div><!--顯示分頁(yè)信息--> </body>

3.Page.class.php需要更改的地方

(1)文件名原來(lái)為page.class.php需要改為Page.class.php,要和類(lèi)名保持一致;

(2)把Page.class.php復(fù)制到thinkphpApplicationHomelibs里面;

(3)namespace Homelibs;加上命名空間。

(4)修改Page.class.php文件中的第57行$this->limit = "LIMIT ".$this->setLimit();,將 "LIMIT ".去掉;

五、輸出字符串的長(zhǎng)度

1.封裝的方法寫(xiě)在同一個(gè)控制器里面

public function test()     {         $str = "volist標(biāo)簽通常用于查詢(xún)數(shù)據(jù)集(select方法)的結(jié)果輸出,通常模型的select方法返回的結(jié)果是一個(gè)二維數(shù)組,可以直接使用volist標(biāo)簽進(jìn)行輸出。在控制器中首先對(duì)模版賦值:";//給str一個(gè)字符串         $m = A("Main");//造一個(gè)Main控制器的對(duì)象         echo $m->ChangDu($str);//輸出$str的長(zhǎng)度     }          public function ChangDu($str)//ChangDu方法,輸出字符串的長(zhǎng)度。     {         return strlen($str);     }

2.封裝的方法不在同一個(gè)控制器里面

(1)在Maincontroller.class.php里面只寫(xiě)下面的方法

public function test()     {         $str = "volist標(biāo)簽通常用于查詢(xún)數(shù)據(jù)集(select方法)的結(jié)果輸出,通常模型的select方法返回的結(jié)果是一個(gè)二維數(shù)組,可以直接使用volist標(biāo)簽進(jìn)行輸出。在控制器中首先對(duì)模版賦值:";//給str一個(gè)字符串         $m = A("Main");//造一個(gè)Main控制器的對(duì)象         echo ChangDu($str);//輸出$str的長(zhǎng)度     }

(2)在thinkphpApplicationHome里面寫(xiě)封裝的方法functions.php,內(nèi)容如下

<?php function ChangDu($str) {     return strlen($str); } ?>

(3)這樣寫(xiě)完以后在瀏覽器中輸入http://localhost/thinkphp/index.php/Home/Main/test讀取不到字符串的長(zhǎng)度,還需要在配置文件里面加上一句代碼:

"LOAD_EXT_FILE"=>"functions",//自動(dòng)加載函數(shù)庫(kù)類(lèi)

家還是那個(gè)這句代碼后才能讀取到字符串的長(zhǎng)度。

六、自動(dòng)判斷session是否存在

1.session的用途

(1)用來(lái)存用戶(hù)名等信息;

(2)防止跳過(guò)登錄;

2.如果按照以前的方式,在每個(gè)頁(yè)面或者方法里面都要判斷session是否存在。

(1)造一個(gè)Fucontroller類(lèi),用來(lái)判斷session是否存在。

<?php namespace HomeController; use ThinkController; class FuController extends Controller//造一個(gè)FuController類(lèi),用來(lái)判斷session值是否存在。 {     public function __construct()//造一個(gè)構(gòu)造函數(shù)     {         if(session('?uid'))//判斷session是否存在,如果存在,什么也不做。         {                      }         else//如果不存在         {             //$url = U("Home/Login/login");             $this->redirect("Home/Login/login",array(),5,'請(qǐng)登錄');//第一個(gè)參數(shù)是跳轉(zhuǎn)的地址,第二個(gè)參數(shù)是要傳的值,第三個(gè)參數(shù)是跳轉(zhuǎn)的時(shí)間,第四個(gè)參數(shù)是跳轉(zhuǎn)時(shí)的提示信息。             exit;         }     } } ?>

(2)寫(xiě)一個(gè)test方法,注意繼承的父類(lèi)是FuController,而不是Controller。第一次走這個(gè)頁(yè)面時(shí)會(huì)跳轉(zhuǎn)到login方法里面,因?yàn)闆](méi)有session值,會(huì)執(zhí)行上面的$this->redirect("Home/Login/login",array(),5,'請(qǐng)登錄');

<?php namespace HomeController; use HomeControllerFuController;// class MainController extends FuController//這里繼承的父類(lèi)更改為FuController {     public function test()     {         $str = "volist標(biāo)簽通常用于查詢(xún)數(shù)據(jù)集(select方法)的結(jié)果輸出,通常模型的select方法返回的結(jié)果是一個(gè)二維數(shù)組,可以直接使用volist標(biāo)簽進(jìn)行輸出。在控制器中首先對(duì)模版賦值:";//給str一個(gè)字符串         $m = A("Main");//造一個(gè)Main控制器的對(duì)象         echo ChangDu($str);//輸出$str的長(zhǎng)度     } } ?>

(3)寫(xiě)一個(gè)login方法。上面的test方法跳轉(zhuǎn)到login方法以后會(huì)存上session,再走test方法就會(huì)出現(xiàn)字符串的長(zhǎng)度,因?yàn)橛辛藄esion值,test方法會(huì)繼續(xù)往下執(zhí)行。

<?php namespace HomeController; use ThinkController; class LoginController extends Controller {     public function login()     {         session("uid","zhangsan");//存一個(gè)session值     } } ?>

推薦學(xué)習(xí):《PHP視頻教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
国内精品国产成人国产三级| 差差差很疼30分钟视频| 中文字幕日韩人妻不卡一区| 午夜亚洲AⅤ无码高潮片苍井空| 玩弄老太婆BBW视频| 小雪被老汉玩遍各种方式电影| 亚洲AV无码一区二区在线蜜桃| 亚洲AV无码一期二期三期少妇| 亚洲AV永久无码老湿机男人网| 亚洲嫩模喷白浆在线观看| 怡红院A∨人人爰人人爽 | 欧美丰满熟妇XX猛交| 人人澡人人妻人人爽人人蜜桃麻豆| 日文中字乱码一二三区别在| 免费无码黄动漫在线观看| 欧美黑人巨大XXXXX| 三个人一起玩3Q详细经过| 无码抽搐高潮喷水流白浆| 日本极品人妻VIDEOSSEX| 色婷婷五月综合亚洲小说| 亚洲AV永久无码精品黑人| 伊人久久大香线蕉综合5G| YY6090青苹果影院| 国产精品成人永久在线四虎| 精品无码AV无码免费专区| 欧精国精产品一区| 铜铜铜铜铜铜铜好多水| 亚洲熟妇无码AV另类VR影视| AV无码人妻一区二区三区在线| 东京热人妻无码人AV| 韩国电影办公室的在线观看| 老汉扛起娇妻玉腿进入| 日韩人妻中文无码一区二区| 亚洲顶级裸体AV片| 99尹人香蕉国产免费天天| 丰满少妇人妻久久久久久| 国产成人无码一区二区在线播放| 大香伊蕉在人线国产最新2005| 人妻互换精品一区二区| 深入浅出糙汉X软妹V1V| 亚洲国产成人无码AV在线| 中国极品少妇XXXXX| 俄罗斯人和欧洲人长相区别 | 在线观看亚洲AV每日更新| 陈冠希实干阿娇13分钟| 精品国产一二三产品区别在哪| 欧美性生交XXXXX久久久| 性生生活大片又黄又| 939W78W78W乳液特色| 国产精品无码一二区免费| 麻豆星空精东天美MV| 四虎精品成人免费视频| 伊人久久亚洲综合AV影院| 丰满熟妇岳AV无码区HD| 久久久久亚洲AV成人网人人| 色综合久久无码五十路人妻| 亚洲一区二区三区国产精华液| 成人国产精品一区二区网站公司| 啊灬啊灬啊灬快灬深视频无遮掩 | 白丝制服被啪到喷水很黄很暴力| 黑人巨大精品欧美一区二区免费| 强插女教师AV在线| 亚洲AV无码专区成人网址| 把腿张开让老子臊烂你的视频| 精品国产亚洲一区二区三区在线观| 日本三级在线播放线观看视频| 亚洲无码成人av| 国产DB624色谱柱36521| 你日的我走不了路了| 亚洲av中文无码| 东京热无码人妻精品一区二区三区| 久久人人爽人人爽人人片DVD | 日本少妇人妻XXXXⅩ18欧美| 亚洲人成网站精品片在线观看| 国产Ⅴ亚洲V天堂A无码| 年轻夫妻把小孩哄睡后开监控| 亚洲AV最新天堂网址| 妇女性内射冈站HDWWW000| 妺妺窝人体色WWW在线观看| 亚洲A级成人无码网站| 丰满妇女强高潮18ⅩXXX| 男男AV纯肉无码免费播放无码| 亚洲av无码一区二区三区dv| 超碰人人澡人人胔| 男女啪啪吃奶GIF动态图| 亚洲精品中文字幕无码专区| 国产高潮呻吟无码精品AV | А√最新版地址在线天堂| 久久亚洲AV成人无码| 亚洲AV成人一区二区三区| 成人性色生活片免费看爆迷你| 男生把QQ放进女生的QQ里韩剧| 亚洲精品自在在线观看| 国产男男Gay做受| 激情内射亚州一区二区三区爱妻| 色综合AV男人的天堂伊人| AK福利利电影在线看视频| 军人暴力性强迫RAPE| 亚洲乱色熟女一区二区三区蜜臀| 国产乱人伦精品免费| 久久久久成人精品无码中文字幕 | 国产精品久久久久9999小说| 精品少妇人妻AV免费久久久| 无码不卡一区二区三区在线观看| 成人亚洲一区无码久久| 人成乱码一卡二卡三四卡五卡六卡| 无码丰满少妇2在线观看| 大波妺AV网站影院| 破外女出血视频全过程| 18禁无码无遮挡H动漫免费看| 国产成人精品午夜二三区波多野| 人妻互换ⅩXXXBBBB| 99国产精品久久久久久久成人热| 久久精品国产久精国产思思| 日日碰日日摸夜夜爽无码| XXXXX69HD护士19学生| 欧美V国产V亚洲V日韩九九| 中国少妇内射XXXHD| 久久久久久精品免费免费999| 亚洲欧美日韩久久精品| 交换玩弄两个美妇教师韩国电影| 亚洲AV成人精品日韩一区| 成人福利国产午夜AV免费不卡在| 免费源码资源源码站| 亚洲精品白浆高清久久久久久 | 宝宝自己坐下来还是我撞进来视频| 私密按摩高潮熟女啪啪| 国产做床爱无遮挡免费视频 | 麻豆果冻视频传媒APP下载| 伊人色综合网一区二区三区| 久久精品国产99久久无毒不卡 | 丁香花在线视频观看免费| 日韩AV影院在线观看| 亚洲AV成人无码精品| 国产佗精品一区二区三区| 亚欧乱色熟女一区二区三区| 国精产品一区一区三区| 亚洲AV一本岛在线播放| 加勒比久久综合久久鬼色88| 亚洲成AV人片在线观看不卡| 精产国品一二三产区区別| 亚洲日本乱码一区二区在线二产线| 久久国产午夜精品理论片| 在镜子面前看我是怎么爱你的| 老头老太太GMBGMBGM | 亚洲AV无码国产精品色| 黑人大荫蒂老太大| 日产一二三区别免费必看| 动漫人物插画动漫人物的视频 | 国产精品成人AV片免费看| 无码乱人伦一区二区亚洲一| 国产日产欧产精品品不卡| 亚洲精品欧美综合四区| 老师你的好软水好多的时候图片| 19岁MACBOOKPRO高清| 日本乱码伦午夜福利在线| 国产成人精品无码一区二区老年人| 午夜无码乱码在线观看| 狠狠亚洲婷婷综合色香五月| 一本大道香蕉大无线吗| 女人18毛片A级毛片视频| 宝贝你的奶好大我想吃| 天天狠天天透天天爱综合| 99热国产这里只有精品9| 日本人真人姓交大视频| 国产精品午夜福利不卡| 亚洲精品国产自在久久| 麻花传媒MV一二三区别在哪里看 | 狠狠色噜噜狠狠狠8888米奇| 伊人久久大香线蕉AV一区二区| 欧洲熟妇色XXXXX欧美老妇伦| 丰满浓毛的大隂户自慰| 亚洲 校园 欧美 国产 另类| 久久久久精品国产AV麻豆| AAA级久久久精品无码片| 天天看AV片在线观看| 久久99精品久久水蜜桃| A狠狠久久蜜臀婷色中文网| 天堂√最新版中文在线| 久久精品国产男包| www高潮无码免费看| 午夜无码片在线观看影院网址| 久久久久亚洲AV成人网人人网站 | 中文字幕亚洲人妻| 久久久国产精品ⅤA麻豆百度| 99精品视频九九精品视频| 少女たちよ在线观看完整版动漫| 精品国内自产拍在线观看| AV无码欧洲亚洲电影网| 无人区码一码二码三码是| 国产成人A亚洲精V品无码| 亚洲乱码日产精品BD在线观看| 欧美亚洲另类 丝袜综合网| 国产精品亚洲精品日韩已满| 影音先锋2017AV天堂| 色偷偷888欧美精品久久久| 精品无人区麻豆乱码1区2区新区 | 日本JAPANESE猛男GAY| 激情综合婷婷丁香五月俺来也 | 三个男人躁我一个爽|