こんにちは、コーダーのオッコです。
本日は、php側で用意したデータをjqueryで使いたいときの引き渡し方法を紹介します。
目次
前提
使用フレームワーク
・バック:Laravel フロント:smarty、jQuery
やりたいこと
・Controller側で用意した配列を、jqueryで使いたい
まず単純なテキストデータの引き渡し方
//controller側 普通にviewに値を引き渡す
$hoge= "ほげ";
$fuga = 1000;
$this->view->assign('hoge', $hoge);
$this->view->assign('fuga', $fuga);
//js側
<script>
(function() {
var hoge = '{$hoge}', // hoge = 'ほげ'
fuga = {$fuga}; // fuga = 1000
});
</script>
tplファイルの中にjavascriptを直書きする方法です。
単純なデータならこれでいけます。
私の場合、同じように配列を渡してみたところ、何も入ってくれませんでした。
配列データの渡し方
//controller側 普通にviewに値を引き渡す
$hairetsu= [001,002,003];
$hairetsu = json_encode($hairetsu);
$this->view->assign('hairetsu', $hairetsu);
//js側
<script>
(function() {
var hairetsu = {$hairetsu}; // hairetsu = [001,002,003]; hairetsu[1] = 002;
});
</script>
配列の場合は、jsonにエンコードし、テキスト状態にしてから引き渡します。
※配列内に文字列があると「”」でエラーが出たので、何かもう一工夫必要なようです。
以上です。
参考
https://rythgs.co/archives/2014/06/02/pass-value-to-js-from-smarty
https://www.sejuku.net/blog/23004
https://www.sejuku.net/blog/33613
D-NET


[Smarty]変数・配列を定義する(assign) - D-NET
テンプレート内で変数・配列を定義する方法。assignの中で変数と変数を結合する方法。カウントの定義の仕方。配列の定義方法の参考例。
https://www.tohoho-web.com/ex/json.html
[cc id=1656]
コメント