大家都知道AJAX傳回來的資料有三種,文本,JASON,XML
我現在希望他傳回的資料類型四JASON
我在控制器裡這樣定義:
$a=10;
$Jason='{"number":"$a"}'
這樣寫為什麼不行啊?他傳回來的值是$a而不是 10?
有人說你把10放進去就行了,這點我明白可是如果你從資料庫裡取出來的值怎麼辦?
例如
$a= $row['content'];
//echo $a;//這樣能取出來資料庫裡值
$Jason='{"content":"$a"}';//這樣就是不行;
我要是這樣寫$Jason='{"content":"$row['content']"}';//就是把$a 直接替換成$row['content'];
他會提示法錯誤 ;
難道JASON中的值不能用變數替換嗎?
如果不能替換,那怎麼從資料庫中取出值,上面的$JASON格式該怎麼改啊?
回複討論(解決方案)
json不是以數組的形式返回麼,裡面能用變數?
$Jason='{"content":"$a"}';
/這樣不行的原因是:單引號中的變數是不會被替換成值的
可寫作
$Jason = "{\"content\":\"$a\"}";
或
$Jason = sprintf('{"content":"%s"}', $a);
其實 php 已經提供了 json_encode 函數,可輕鬆的將各種變數轉換成 json 格式串
;
這樣寫試試$Jason='{"number":" '.$a. '"}'
單引號不解析變數和大部分轉義,只有雙引號才可以
直接用php 的json_encode()杠杠的
直接用php 的json_encode()杠杠的
問題有2個,網頁編碼GBK,用JSON_ENCODE()顯示的結果為空白?怎麼處理?
第2個用了Json_encode()漢字不能正常顯示,傳給JS的顯示的是進位數
直接用php 的json_encode()杠杠的
問題有2個,網頁編碼GBK,用JSON_ENCODE()顯示的結果為空白?怎麼處理?
第2個用了Json_encode()漢字不能正常顯示,傳給JS的顯示的是進位數
給 ajax 用的 json 資料都是動態I資料,讓資料庫返回 utf-8 的資料就可以了
任何編碼的資料到了瀏覽器都被轉換成了 unicode 編碼, json_encode 先做了,並沒有什麼不好
使用php 的json_encode就可以。如果不是utf8資料,可以使用iconv('GBK','UTF',$content); 轉一下然後再json_encode。
$a=10;$arr = array('number'=>$a);$Jason = json_encode($arr); //{"number":10}echo $Jason;
$a=10;$arr = array('content'=>$a);$Jason = json_encode($arr); // {"content":10}echo $Jason;