Я пытаюсь обойти проблему чтения данных из 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 не работает.
Я схожу с ума, пытаясь понять, почему.
Вы должны HTML кодировать свой атрибут HTML
$content .= '<tr class="cal_body">
<td class="btn_icon icon icon-setup" onclick="'.htmlspecialchars('modUt('.json_encode($data).')').'"></td>'.
'</tr>';
Других решений пока нет …