cakephp2.6
お気に入り機能を実装したと思っています。
●概要●
⑴ユーザがログインして。
⑵お気に入りボタンを押したらボタンが押せなくなり、お気に入り追加完了
処理としてajaxで画面推移なしで、お気に入り追加しましたの表示をさせる
Favoritesのテーブル構成
id
user_id
post_id
になります。
今現状で、お気に入り登録ボタンを押して、
ajaxでFavorites内にデータは、格納できました。
お気に入り登録が完了しましたの表示もでます。
ここから、ボタンを押しているものは、ボタンが押せないの
判定がいると思いますが、これをどのように実装するかわかりません。
調べるとjqueryで実装する必要があるようなないような。
view
php
1<?php 2 echo $this->Form->create('favorite', 3 array('controller' => 'favorites','type'=>'post')); 4 echo $this->Form->input('Favorite.user_id', array( 5 'type'=>'hidden', 6 'value' => $userdata['id'] 7 )); 8 echo $this->Form->input('Favorite.post_id', array( 9 'type'=>'hidden', 10 'value'=>$post['Post']['id']) 11 ); 12 echo $this->Js->submit('Favorite', array( 13 'before' => $this->Js->get('#favo-js-submit')->effect('fadeIn'), // => beforeSend (Local Event) 14 'success' => $this->Js->get('#favo-js-submit')->effect('fadeOut'), // => success (Local Event) 15 'url' => '../favorites/favo_btn', // Ajax処理で呼び出すURL(controller/action) 16 'update' => '#favo-js-submit', // ajax更新の結果を出力する要素 17 )); 18 echo $this->Form->end(); 19 echo $this->Js->writeBuffer(); 20 ?> 21 22 <div id="favo-js-submit"></div> 23 <div id="favo-js-submit"></div>
favoriteのコントローラー
php
1//お気に入り登録機能 2 public function favo_btn(){ 3 4 // Ajax or not 5 if (!$this->request->is('ajax')){ 6 $this->redirect( '/js_submit_form'); 7 } 8 // save OK 9 if ($this->Favorite->save($this->data)) { 10 $this->render( '/Elements/Ajaxs/favoajaxupdated','ajax'); 11 12 // save NG 13 } else { 14 $this->set('valerror', $this->Favorite->validationErrors); 15 $this->render( '/Elements/Ajaxs/favoajaxupdated','ajax'); 16 } 17 }
以上になります。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/23 03:26
退会済みユーザー
2016/02/23 04:52 編集
2016/02/23 16:33
2016/02/24 03:10
退会済みユーザー
2016/02/24 03:15
退会済みユーザー
2016/02/24 03:34 編集
2016/02/24 21:26
退会済みユーザー
2016/02/25 01:39 編集
2016/02/26 15:10