因為經常使用數據格式,所以將它封裝成類,J這樣就不會用到時就寫了,直接調用寫好的類就可以了
(1)dataType數據格式為:TEXT格式的數據是字符串的數據,在“ajax對數據進行刪除和查看”的那篇博客中說過,這里在說下
結果不會每個傳輸的都是字符串,有時是二維數組,這樣就要轉換為字符串格式了
class DBDA
{
public $host="localhost"; //數據庫連接
public $uid="root"; //用戶
public $password="123"; //用戶密碼
public $dbname="test2"; //用到的數據庫名字
//返回字符串的方法
public function StrQuery($sql,$type=1)
{
$db = new MySQLi($this->host,$this->uid,$this->password,$this->dbname); //造一個新對象
$r = $db->query($sql); //sql語句
if($type==1) //判斷語句
{
$attr = $r->fetch_all();
$str = "";
foreach($attr as $v)
{
$str .= implode("^",$v)."|"; //拼接數組為字符串
}
return substr($str,0,strlen($str)-1); //截取字符串:最后的拼接符不顯示
}
else
{
return $r;
}
}
}
這就把轉換字符串封裝成了一個類:運用一下
$.ajax({
url:"xianshicl.php", //處理頁面中進行查數據庫
dataType:"TEXT", //用的text的數據類型
success: function(data){
//這里是處理頁面執行結束后在執行的語句
}
})
處理頁面的查數據庫
<?php
include("DBDA.class.php"); //調用封裝好的類文件
$db = new DBDA(); //造新對象
$sql = "select * from fruit"; //查數據庫的內容語句
echo $db->StrQuery($sql); //1.引用封裝好的類中的轉換字符串的方法
/* //2.不想調用,可以自己寫,不過就是麻煩點,因為這樣會每次用到時都要寫
$attr = $db->Query($sql);
$str = "";
foreach($attr as $v)
{
$str .= implode("^",$v)."|"; //拼接數組為字符串
}
echo substr($str,0,strlen($str)-1); //截取字符串:最后的拼接符不顯示
*/
?>
這里是處理頁面執行語句的效果:

然后在ajax中進行拆分后就可以了:
success: function(data){
var hang = data.split("|"); //拆分字符“|”串:顯示行
var str = "";
for(var i=0;i<hang.length;i++)
{
var lie = hang[i].split("^"); //拆分字符串“^”:顯示列
str += "<tr><td>"+lie[0]+"</td><td>"+lie[1]+"</td><td>"+lie[2]+"</td><td>"+lie[3]+"</td><td>"+lie[4]+"</td></tr>"; //直接找索引號
}
$("#bg").html(str);
}
(2)dataType數據格式為:JSON比較像關聯數組:所以在引用時,數組是要關聯數組的,不能是索引數組
我們也把這個封裝成一個類,既然是關聯數組,在遍歷時的函數值應該是fetch_all(MYSQLI_ASSOC)
class DBDA
{
public $host="localhost"; //數據庫連接
public $uid="root"; //用戶
public $password="123"; //用戶密碼
public $dbname="test2"; //用到的數據庫名字
//返回JSON
function JSONQuery($sql,$type=1)
{
$db = new MySQLi($this->host,$this->uid,$this->password,$this->dbname);
$r = $db->query($sql);
//和字符串不同的地方
if($type==1)
{
//json是關聯數組:fetch_all(MYSQLI_ASSOC)
return json_encode($r->fetch_all(MYSQLI_ASSOC)); //轉化成json:json_encode()必須是utf-8的服務
}
else
{
return $r;
}
}
}
這就把json封裝成了一個類:運用一下
$(document).ready(function(e) {
$.ajax({
url: "scl.php", //處理頁面
dataType:"json", //數據類型是JSON
success: function(data){
//處理頁面結束后執行的語句寫這里
}
})
});
處理頁面的語句:
<?php
include("DBDA.class.php"); //調用封裝的類
$db = new DBDA();
$sql = "select * from fruit";
echo $db->JSONQuery($sql); //這里就是引用的封裝好的JSON方法
執行下,看下這個方法和TEXT的區別(這個就是個數組,還是個關聯的數組)

處理頁面執行成功后執行下面語句
var str = "";
for( var k in data)
{
str +="<option value='"+data[k].Ids+"'>"+data[k].Name+"</option>"; //找到k的Code,這里的Code要和數據庫中的列名一致
}
$("#fruit").html(str);
下面就把整體的效果看下,上面做了個下拉列表,找的是數據庫中水果表的名稱,如下:

TEXT是直接遍歷索引號,而JSON是列名
str += "<tr><td>"+lie[0]+"</td><td>"+lie[1]+"</td><td>"+lie[2]+"</td><td>"+lie[3]+"</td><td>"+lie[4]+"</td></tr>"; //直接找索引號
str +="<option value='"+data[k].Ids+"'>"+data[k].Name+"</option>"; //找到k的Code,這里的Code要和數據庫中的列名一致
需要注意,JSON是關聯數組,要用MYSQLI_ASSOC這個值,
轉換成JSON的方法是:json_encode()
使用這個方法服務必須是utf-8的服務
