PHP關於AJAX一點疑惑

來源:互聯網
上載者:User
大家都知道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;
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.