json_encode添加双引号而不是空格

时间:2016-07-07 15:11:20

标签: php mysql json double-quotes

我正在尝试解决从mysql读取数据并通过php将它们传递到我的页面的问题。 我的任务是将从mysql读取的数据直接插入到js函数中。 代码是:

while($row = $query_ope->fetch_assoc()){
  $data = array("str_id" => $row['Id'],
                "str_rag_sociale" => $row['Rag_Sociale'],
                "str_indirizzo" => $row['Indirizzo'],
                "att_luogo" => json_decode($row['Comune']),
                "str_cap" => $row['Cap'],
                "str_reparto" => $row['Reparto']
                );
  $content .= '<tr class="cal_body">'.
                <td class="btn_icon icon icon-setup" onclick=modUt('.json_encode($data).')></td>'.
              '</tr>';

现在的问题是来自db字段的数据包含其中的空格(例如,当$ row [&#39; Comune&#39;] =&#34;某些文本&#34;)被解析如下:

onclick=modUt({...,"att_luogo" : "some" text","str_cap"....})

在第一个单词之后加上双引号,这是一个问题因为我的js函数失败了。 我正在疯狂地试图理解为什么。

1 个答案:

答案 0 :(得分:2)

你必须html编码你的html属性

$content .= '<tr class="cal_body"> 
            <td class="btn_icon icon icon-setup" onclick="'.htmlspecialchars('modUt('.json_encode($data).')').'"></td>'.
          '</tr>';