json_encode добавляет двойные кавычки вместо пробелов

Я пытаюсь обойти проблему чтения данных из 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>';

Теперь проблема в том, что данные из полей базы данных, которые содержат пробелы внутри (например, когда $ row [‘Comune’] = «some text»), анализируются следующим образом:

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

поставить двойные кавычки после первого слова some, и это проблема, потому что моя функция js не работает.
Я схожу с ума, пытаясь понять, почему.

0

Решение

Вы должны HTML кодировать свой атрибут HTML

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector