注:thinkphp使用ajax和之前使用ajax的方法一樣,不同點在於之前的ajax中的url指向了一個頁面,而thinkphp里面的url需要指向一個操作方法。
在模塊控制器Controller文件夾里創建一個 AjaxController.class.php
<?php namespace Admin\Controller; use think\Controller; class AjaxController extends Controller{ public function Ajax(){ $this->show();//顯示頁面
} public function ajaxchuli(){ //Ajax頁面里的 url 指向的是這個方法 $n = D("Nation"); $attr = $n->select(); $this->ajaxReturn($attr);//ajax返回方法ajaxReturn();
} public function addajax(){ $this->show(); } public function addchuli(){ //addajax頁面里的 url 指向的是這個方法 $n = D("Nation"); $n->create();//自動收集表單。。只要內容頁面使用POST傳值create()方法就很方便!
$r = $n->add();//add()方法添加數據
if($r){ $this->ajaxReturn("OK","eval");//使用TEXT傳值這里就要加上exal 輸出字符串data數據。
}else{ $this->ajaxReturn("ON","eval"); } } }
在模塊視圖(顯示頁面)View文件夾里先創建好Ajax文件夾(代表的是Ajax控制器),里面再創建Ajax.html頁面(代表的是你自定義的方法)
<html>
<head>
<meta content="text/html; charset=utf-8" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"> </script><!--jquery文件放在public/js里面。__PUBLIC__找到public目錄-->
</head>
<body>
<select id="nation">
</select>
<script type="text/javascript"> $.ajax({ url:"__CONTROLLER__/ajaxchuli",//這里指向的是一個方法。
data:{}, dataType:"JSON", type:"POST", success: function(data){ //alert(data[0].code);//這里要用索引,使用eq讀取不出來數據。
var str = ""; for(a in data){ str = str+"<option value='"+data[a].code+"'>"+data[a].name+"</option>" } $("#nation").html(str); } }); </script>
</body>
</html>
在模塊視圖(顯示頁面)View文件夾里先創建好Ajax文件夾(代表的是Ajax控制器),里面再創建addAjax.html頁面(代表的是你自定義的方法)
<html>
<head>
<meta content="text/html; charset=utf-8" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
</head>
<body>
<div>代號:<input type="text" id="code" /></div>
<div>名稱:<input type="text" id="name" /></div>
<div><input type="button" id="btn" value="添加" /></div>
<script type="text/javascript"> $("#btn").click(function(){ var code = $("#code").val(); var name = $("#name").val(); $.ajax({ url:"__CONTROLLER__/addchuli", data:{Code:code,Name:name}, dataType:"TEXT", type:"POST", success:function(data){ alert(data); } }); }); </script>
</body>
</html>