dqlk31541 2018-01-19 16:14
浏览 55
已采纳

将PHP数组发送到在echoed string中调用的JS函数

I have a multidimensional array and want to send it as a parameter to JS function. Google told me that json_encode() is the way to go, but I get an unterminated string literal error when I try to call the function.

Here's my code:

$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>";

And the example echo of the array after 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条回答 默认 最新

  • douzhao7445 2018-01-19 16:22
    关注

    It's because the string you're injecting from $tablica_artefakty contains quotes. This causes your HTML be improperly rendered - attribute is prematurely closed by the quote from your string. You should escape the quotes in your $tablica_artefakty so that they don't close the HTLM attributes in wrong places.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?