PHP側でAPIレスポンスの配列データ(JSON)をフロント側(HTML/JavaScript)に渡そうとしています。 PHP側で取得した検索結果(配列)を、JSON形式でJavaScriptに渡したいのですが可能なのでしょうか? 以下の方式を試してみたのですが、うまくできない状態です。 json_encode($response_items, JSON_UNESCAPED_UNICODE) → 500エラー base64_encode(json_encode(...)) → 500エラー 配列のまま渡す → HTML側では文字列化されてしまい、JSONとして扱えない ご教授いただければ幸いです。 よろしくお願いいたします。
// json形式を配列に変換して表示 $response_data = json_decode($response , true); $response_items = $response_data['items']; // 検索結果をbodyに渡す $selectData = $response_items; $SPIRAL->setTHValue("selectData" ,$selectData);
<input type="hidden" id="selectData" th:value="${cp.result.value['selectData']}">
const rawData = document.querySelector("#selectData").value; let selectData; try { selectData = JSON.parse(rawData); console.log("Parsed selectData:", selectData); } catch (e) { console.error("JSONパースエラー:", e); }
コメント
ナレッジ
向上チーム
ソースコードの添付ありがとうございます。 添付いただいたPHPのソースコードに記載のsetTHValue()関数ですが、 こちらはPHP実行結果の値を渡す関数になりまして、 配列を渡したい場合はsetTHValues()関数をご使用ください。 json_decodeで配列に変換いただき、setTHValues()関数に配列を指定いただくことで、bodyに渡すことが可能です。 以下のサポートサイト記事にも記載しておりますので、ご参考いただけますと幸いです。 ▼PHP>setTHValues($array) https://support.spiral-platform.com/function/function-site-manage/6898.html#setTHValuesarray