2011年1月6日 星期四

PHP版本不支援json_encode卻還是想用JSON

<?php
/*
 * 由執行頁面利用ajax傳遞參數到J_ajax.php進行轉換為JSON格式再回傳
 * 先了解JSON格式 {Name:A,Tel:123466,Sex:boy}
 */$sql="select * from table where AutoNo='".$_POST['AutoNo']."'";
$rs=  mysql_query($sql);
//while迴圈外先用{}包住
echo '{';
while ($rows = mysql_fetch_array($rs)) {
//把需要呼叫的資料以陣列方式儲存,會以陣列儲存是因當時需求下,資料欄位名稱對應的值具有多筆,所以先把相同名稱的值儲存為陣列
$arr=array('View_'.$rows['No']=>$rows['view'],'add_'.$rows['add']=>$rows['add']);
//之後再用foreach迴圈把每筆資料對應的值串接起來並且以逗號隔開
    foreach ($arr as $json => $value) {
       $str.= '"'.$json.'":"'.$value.'",';
    }
//用逗號隔開後echo出來的會發現一件事再字串連結的最後會出現多一個逗號,firefox會忽略這個逗號,IE則會發生錯誤
}
//以下是處理逗號的程式
$str_t=trim($str);
//字串長度最後第二位置到字串最後一個位置
$last_str=substr($str_t,strlen($str_t)-1,strlen($str_t));
//如果最後一個是逗號,則取出字串第0個位置到最後第二位置(逗號為最後一個位置)
if($last_str==","){
echo substr($str_t,0,strlen($str_t)-1);
}else{
    echo $str_t;
}
echo '}';
?>

有了JSON格式再搭配jQuery...
有興趣的可以試試看,假如有比較好的方法請多指教^^

沒有留言: