在ThinkPHP框架中 採用AJAX訪問網絡要注意 在url中 url: '<?php echo U('Goods/index','',FALSE);?>',在ThinkPHP中自動生成把 GoodsController.class.php中的方法自動生成url 能夠直接訪問。
javascript
在沒有用框架的時候要訪問 .php中的方法要在.php中實例化以後才能訪問。 在url中 url:'ajax.php',php
還有在函數輸出json的時候 不能再方法中帶有 輸出類型的函數 不然返回數據類型就不是json。html
使用 jQuery綁定方法:java
#('a').bind('click',function(){ alert("bind click a");}); mysql
#('a').live('click',function(){ alert("bind click a");}); jquery
#('a').delegate('click',function(){ alert("bind click a");}); ajax
詳情訪問http://wenku.baidu.com/link?url=IXNhqbJH8Hia5i_4BSOoCau6MEwaAPhSHhQsNxxU7mCOK3xbE1zwcgQ810QVqf76nmiJ4mlWdzUMYz4pYpFfkYqFoxIQx_trW3puTIu_lOe;sql
代碼:thinkphp
在沒有使用框架的時候
數據庫
html中的的代碼:
<div class="container">
<div class="lists"><ul id="ul_lists" class="clearfix"></ul></div>
<div class="page" id="page"></div>
</div>
<script type="text/javascript" src="http://www.sucaihuo.com/Public/js/other/jquery.js"></script>
<script type="text/javascript">
var page_cur = 1; //當前頁
var total_num, page_size, page_total_num;//總記錄數,每頁條數,總頁數
function getData(page) { //獲取當前頁數據
$.ajax({
type: 'GET', //請求方式
url: 'ajax.php', //請求路徑
data: {'page': page - 1}, //請求數據
dataType: 'json', //數據返回格式
success: function(json) { //成功返回的數據時json格式的
total_num = json.total_num;//總記錄數
page_size = json.page_size;//每頁數量
page_cur = page;//當前頁
page_total_num = json.page_total_num;//總頁數
var li = "";
var list = json.list;
$.each(list, function(index, array) { //遍歷返回json
li += "<li><a href='#'><img src='" + array['pic'] + "'>" + array['title'] + "</a></li>";
});
$("#ul_lists").append(li);
},
complete: function() {
getPageBar();//js生成分頁,可用程序代替
},
error: function() {
alert("數據異常,請檢查是否json格式");
}
});
}
function getPageBar() { //js生成分頁
if (page_cur > page_total_num)
page_cur = page_total_num;//當前頁大於最大頁數
if (page_cur < 1)
page_cur = 1;//當前頁小於1
page_str = "<span>共" + total_num + "條</span><span>" + page_cur + "/" + page_total_num + "</span>";
if (page_cur == 1) {//如果第一頁
page_str += "<span>首頁</span><span>上一頁</span>";
} else {
page_str += "<span><a href='javascript:void(0)' data-page='1'>首頁</a></span><span><a href='javascript:void(0)' data-page='" + (page_cur - 1) + "'>上一頁</a></span>";
}
if (page_cur >= page_total_num) {//如果最後頁
page_str += "<span>下一頁</span><span>尾頁</span>";
} else {
page_str += "<a href='javascript:void(0)' data-page='" + (parseInt(page_cur) + 1) + "'> 下一頁 </a><span><a href='javascript:void(0)' data-page='" + page_total_num + "'>尾頁</a></span>";
}
$("#page").html(page_str); //把HTML代碼添加到 #page中
}
$(function() {
getData(1);//默認第一頁
$("#page a").live('click', function() { //live 向將來的元素添加事件處理器,不可用bind
var page = $(this).attr("data-page");//獲取當前頁中<a href>中的值
getData(page)
});
});
</script>
ajax.php 文件是
$host="localhost"; //數據庫地址
$db_user="root"; //用戶名
$db_pass="123"; //用戶密碼
$db_name="thinkphp"; //數據庫名
$timezone="Asia/Shanghai"; //使用時間的時區
$link=mysql_connect($host,$db_user,$db_pass); //鏈接數據庫
mysql_select_db($db_name,$link); //選擇數據庫名
mysql_query("SET names UTF8"); //數據傳輸格式
header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set($timezone); //北京時間
$page = intval($_GET['page']); //當前頁
$total_num = mysql_num_rows(mysql_query("select id from goods")); //總記錄數
$page_size = 9; //每頁數量
$page_total = ceil($total_num / $page_size); //總頁數
$page_start = $page * $page_size;
$arr = array(
"total_num" => $total_num,
"page_size" => $page_size,
"page_total_num" => $page_total,
);
$query = mysql_query("SELECT id,title,pic FROM goods ORDER BY ID ASC LIMIT $page_start,$page_size");
while ($row = mysql_fetch_array($query)) {
$arr['list'][] = array(
'id' => $row['id'],
'title' => $row['title'],
'pic' => $row['pic'],
);
}
echo json_encode($arr);
在ThinkPHP中
.html中文件 主要的變化是 url:'<?php echo U('Goods/ajaxGetData');?>', 其餘的一致。
GoodsController.class.php中的代碼是
public function ajaxGetData(){
$row_total=0; //總共有多少條數據
$page_total=0; //總共有多少頁
$page_current = 1; //當前是第幾頁
$page_size = 9; //每一頁顯示多少條數據
$page_current_size = 0; //當前是第一條數據
$conn = mysql_connect("localhost","root","123"); //數據庫鏈接
mysql_select_db("thinkphp",$conn); //打開指定數據庫
mysql_query("set names utf8"); //設置數據庫的編碼格式
$row_total = mysql_num_rows( mysql_query("select id from goods")); //查詢總共數據
$page_total = ceil($row_total/$page_size);
if ($_GET) {
$page_current =$_GET['page'];
$page_current_size = ($page_current-1)*$page_size;
}
$arr = array(
"page_total" => $page_total,
"page_current" => $page_current,
"row_total" => $row_total,
);
$quer = mysql_query("select id , title, pic from goods order by id asc limit $page_current_size ,$page_size");
while ($row = mysql_fetch_array($quer)) {
$arr ['list'] [] = array(
"id" => $row['id'],
"pic" => $row['pic'],
"title" => $row['title'],
);
}
echo json_encode($arr);
}