** 更新 - 私のソリューションは機能しますが (htmlspeciatchars() を使用しない理由はまだ聞いていません)、Jacob Mouka のクリエイティブ ソリューションの修正版を含めて、それを使用する必要がないようにしています。**
json_encode を使用して onClick() 経由で文字列の配列を JavaScript に渡そうとしています。json_encode($array) を渡すだけでは機能しませんでした。json_encode($array) が ["a","b","c"] を返すため、引用符が問題であると推測しました。json_encode($array) を htmlentities() でラップし、JSON.parse(array) を使用して文字列を配列に戻すことに成功しました。
このサイトのすべての投稿を読みましたが、この組み合わせを解決策として示したものはありませんでした.必要以上に複雑にしているのではないかと思います. htmlentities() は使用する正しい関数ですか? この配列を onclick() から JavaScript 関数に送信する簡単な方法はありますか? 前もって感謝します。
Javascript
<script>
function shohmultiple(array){
alert("Aray as string: " + array);
array = JSON.parse(array)
for (i=0; i< array.length; i++){
alert(array[i]);
}
}
</script>
<?php $array=array("a", "b", "c"); ?>
HTML
<a href="#" onClick="shohmultiple('<?php echo htmlspecialchars(json_encode($array)) ?>')">Click Here</a>
Jacob Mouka からの修正されたソリューション (私が求めているワークフロー用)
Javascript
<script type="text/javascript">
function shohmultiple (array) {
for (i=0; i< array.length; i++){
alert(array[i]);
}
}
</script>
HTML
<?php $array = array("a", "b", "c"); ?>
<script>
// calling this before outputting <a href> works
<?php echo "var js_array = " . json_encode($array) . ";"; ?>
</script>
<a href="#" onClick="shohmultiple(js_array);">Click Here</a>