#今日やること
-
tag表示(サーバからtagのデータを取得してtag一覧表示)
- tagsを取得する
-
javascriptで追加tagのデータをサーバに送信
-
tagの送信が終わった後に、コールバックで(tagを再度表示)
#CakePHP2でjavascript
- jshelper(非推奨 CakePHP3からはなくなる)
- htmlヘルパーで書く方法 ```HtmlHelper::script(mixed $url, mixed $options)¶
* webrootにかく
* 直接書く
#htmlヘルパー js
* ```$this->Html->scriptStart(array('inline' => false)); $this->Html->scriptEnd(array('inline' => false));```
* javascriptだけで書くの難しいっぽい。調べ不足
* jsを外部定義する
* javascriptだけで書けそう
#tag表示
###done
* jsでfor文を回して、データ数に応じたセレクトボックスを作成(仮データ)
document.write('');
* json_encodeで実際のデータでタグ表示 http://maa123lq.hatenablog.com/entry/2015/10/10/191809
こんな感じで、javascriptでhtmlを書きたいときは、文字列としてwriteなので書き込む。
document.write('' + tags[i] + '');
###tagがついているものをチェック済みとして表示する
以下のように条件にマッチする場合、inputタグの表示を変えるようにした。
if(Object.values(selected_json).indexOf(String(i))>=0){
document.write('');
}else{
document.write('');
}
###学びメモ
**PHPからJavaScriptに配列を渡す**
json形式に変換した上で受け渡しをする。
https://qiita.com/tksnino/items/c8c542f1f0a7bf9d6031
* セレクトボックスは、cakephpのformヘルパーのcreateとendの間に記述した。こうすることで、formとしてrequest->dataに保存されサーバに送ることができる。結局、formヘルパーもサーバ上でhtmlに変換されているから、htmlでクライアント側でhtmlを追加しても同じように表示できる。
* オブジェクトは、値チェックを直接することが難しそう。今回も配列になおしてindexOfで判定している。