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
-
いいね
2025年4月9日(水)