将PHP数组发送到在echoed string

时间:2018-01-19 16:14:44

标签: javascript php arrays multidimensional-array

我有一个多维数组,想把它作为参数发送给JS函数。谷歌告诉我json_encode()是要走的路,但是当我尝试调用该函数时,我收到未终止的字符串文字错误。

这是我的代码:

$wynik_artefakty = $polaczenie->query("SELECT * FROM artefakty"); 
$tablica_artefakty = mysqli_fetch_all($wynik_artefakty,MYSQLI_ASSOC);
$tablica_artefakty = json_encode($tablica_artefakty);

 echo "<div class='wpis' 
       onclick=\"dodajDiv('$tablica_artefakty')\">" 
      .$tablica_jednostek[$i]['nazwa']." ".$tablica_jednostek[$i]['koszt']."</div>";

json_encode()之后数组的示例回显:

[{"Id":"2","nazwa":"Sceptre of Atrocities","personal":"The 
Gorgon","dla_maga":"0","koszt":"15"},{"Id":"3","nazwa":"Artefakt dla 
maga","personal":"","dla_maga":"1","koszt":"10"}] 

1 个答案:

答案 0 :(得分:0)

这是因为您从$tablica_artefakty注入的字符串包含引号。这会导致HTML被错误地呈现 - 属性会被字符串中的引用过早地关闭。您应该转义$tablica_artefakty中的引号,以便它们不会在错误的位置关闭HTLM属性。