使用json数据转义javascript onclick

使用json数据转义javascript onclick,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我用php构建了一个按钮来触发javascript onclick事件: <button onClick='edit(this, "<?php echo $this->result[$i]["type"]; ?>","<?php echo $quality; ?>", "<?php echo json_encode($stuff); ?>", ...)"> </button> 我得到以下错误:SyntaxError:参数列表后缺

我用php构建了一个按钮来触发javascript onclick事件:

<button onClick='edit(this, "<?php echo $this->result[$i]["type"]; ?>","<?php echo $quality; ?>", "<?php echo json_encode($stuff); ?>", ...)">
</button>
我得到以下错误:SyntaxError:参数列表后缺少

这是因为json数据使用双引号,因此结果如下所示:

foo,bar,[{name:test,hash:123},{name:test1,hash:456}


在此onclick事件中,我尝试将引号更改为单引号,反之亦然。我尝试使用反斜杠转义引号。似乎没有任何效果。我缺少什么?

您是否尝试转义要返回的json的引号?您可以这样做: echo json_encode$this->result[$i][type]

它将使您的json如下所示: \foo\,\bar\,\[{\name\:\test\,\hash\:\123\}

如果您的代码已经在json中,json_encode除了添加黑斜杠之外不应该更改任何内容

... "<?php str_replace('"', '\"', $this->result[$i]["type"]); ?> ...

可能是因为在文本中显示的类型是字符。

在客户端尝试JSON.parsedata,在服务器上尝试JSON_encodedata。@localghost也尝试了同样的问题。
... "<?php str_replace('"', '\"', $this->result[$i]["type"]); ?> ...