我现在希望他传回的数据类型四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;
