Php Jquery从html元素获取带撇号的json对象

Php Jquery从html元素获取带撇号的json对象,php,jquery,json,Php,Jquery,Json,我从mysqli查询(db类)创建了一个json对象 db类 public function Json() { $result = $this->db->mysqli->query ("SELECT * FROM table"); $data = array(); while($row = $result->fetch_array()) { $data[]= array('id' => "" .$row

我从mysqli查询(db类)创建了一个json对象

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();?>'/>
我犯了这个错误

SyntaxError: missing ) after argument list
在创建关联数组时,我尝试在php中使用addslashes函数,但没有成功

$data[]= array('id' => "" .$row[0]. "", 'text' => "" .addslashes($row[1]). "");
json对象在html源代码中显示正确,因此我想这是jquery的问题。

我怎样才能解决我的问题?谢谢

您遇到html注入问题。。。您正在将json文本填充到html上下文中,json中嵌入的
正在破坏您的html。您需要使用
htmlspecialchars()
来转义所有这些html元字符。这与json本身无关。如果您将任意文本塞进包含html元字符的html中,就会遇到这个问题。@MarcB-在我的场景中,如何以及在哪里使用htmlspecialchars()?谢谢
datajson='
。不要在不理解为什么它们是必需的情况下,就开始使用随机字符串破坏函数
addslashes()
是一种无用的sql注入攻击预防机制的残余。它所做的一切相当于str\u replace($str,“,“\”)。html从来没有也永远不会使用反斜杠来转义内容。因此,addslashes()在这种情况下是完全无用的。@MarcB-谢谢,但不幸的是,htmlspecialchars没有解决我的问题。您有一个html注入问题。。。您正在将json文本填充到html上下文中,json中嵌入的
正在破坏您的html。您需要使用
htmlspecialchars()
来转义所有这些html元字符。这与json本身无关。如果您将任意文本塞进包含html元字符的html中,就会遇到这个问题。@MarcB-在我的场景中,如何以及在哪里使用htmlspecialchars()?谢谢
datajson='
。不要在不理解为什么它们是必需的情况下,就开始使用随机字符串破坏函数
addslashes()
是一种无用的sql注入攻击预防机制的残余。它所做的一切相当于str\u replace($str,“,“\”)。html从来没有也永远不会使用反斜杠来转义内容。因此,addslashes()在这种情况下是完全无用的。@MarcB-谢谢,但不幸的是,htmlspecialchars并没有解决我的问题
SyntaxError: missing ) after argument list
$data[]= array('id' => "" .$row[0]. "", 'text' => "" .addslashes($row[1]). "");