我从mysqli查询(db class)创建一个json对象。
class db
public function Json() {
$result = $this->db->mysqli->query
("SELECT * FROM table");
$data = array();
while($row = $result->fetch_array()) {
$data[]= array('id' => "" .$row[0]. "", 'text' => "" .$row[1]. "");
}
echo json_encode($data);
}
在我的php页面中,我设置了一个数据变量,从我的php类中获取json对象
的index.php
$db = new db();
<input type="hidden" id="jsonObject" data-json='<?php $db->Json();?>'/>
以这种方式用jquery获取数据
<script>
var data = $.parseJSON($('#jsonObject').attr("data-items"));
</script>
这项工作做得很好,但如果我有一个带有撇号的php json数据
[{"id":"1","text":"I don't know"},{etc..}]
我有这个错误
SyntaxError: missing ) after argument list
我在创建关联数组时尝试在php中使用addslashes函数,但没有成功。
$data[]= array('id' => "" .$row[0]. "", 'text' => "" .addslashes($row[1]). "");
json对象在html源代码中正确显示,所以我猜这是jquery的一个问题。
我怎样才能解决我的问题?谢谢