• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実装可能できますか?)

実装可能な方法としてのCakePHPの利用と画面遷移の問題

このQ&Aのポイント
  • CakePHPを使用してデータの検索と出力を行う方法について質問です。
  • 特定のボタンを押すとデータを検索し、出力する処理を実装しています。
  • しかし、データが0行の場合にはアラートを表示して処理を終了させたいのですが、画面が真っ白に遷移してしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

再帰処理として自分自身にパラメータを投げて、0のときにはアラートをだすか チェックはajaxでおこなうかのどちらかがよいのでは?

omlyuu
質問者

お礼

yambejp様。御回答ありがとうございます。 再帰処理でちょっとやってみることにします。 ajaxは使い方がわからないので…。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • cakePHPでFormを使用したDBへの登録

    cakePHP初心者です。 ブラウザで入力画面→確認画面→完了画面と遷移して、 DBに入力した値を登録する基本の動きをさせたいのですが、 Controllerの動きが分かりません。 Viewのファイルを 入力画面:entry.ctp 確認画面:confirm.ctp 完了画面:complete.ctp とします。 1.SampleControllerからentryページを表示 public function entry(){ } 2.etntry.ctpでFormを作成 <?php echo $this->Form->create('Sample', array('action' => 'confirm')) . PHP_EOL; ?> 3.SampleControllerでconfirmメソッドが呼ばれる public function confirm(){ if($this->request->is('post')){ データを画面にセット? } } 4.confirm.ctpが表示され、登録ボタンを押すと完了画面にFormを作成 <?php echo $this->Form->create('Sample', array('action' => 'complete')) . PHP_EOL; ?> 5.SampleControllerでcompleteメソッドが呼ばれる public function confirm(){ if($this->request->is('post')){ バリデーションチェック後、DBに登録? } } この流れでよいのでしょうか。 完了画面のcompleteでバリデーションチェックを行うことに違和感を感じています。 仮にconfirmで実施するとしても、書き方が良く分かりません。 <?php echo $this->Form->create('Sample', array('action' => 'confirm')) . PHP_EOL; ?> と書いたら、3の処理とかぶってしまいますよね・・・? 説明分かりにくくてすみません・・・。 ネットで調べつつやっていたのですが、一連の流れをすべて書いたサイトに見当たらず、 途方に暮れています。 どなたかご教示お願いします。

    • 締切済み
    • PHP
  • CakePHP 1.3について

    CakePHPが初心者です。 Views-userdetail-index.ctpにて <?php echo $form->create(null,array('type'=>'get','action'=>'./updateRecord')); ?> ~ <?php echo $form->textarea("User.remarks", array("cols" => 22,"rows" => 2)); ?> ~ を記述し、userdetail_controllerにて function updateRecord(){ if (!empty($this->data)){ $this->User->id = 1; $this->User->saveField('remarks','exists'); } else { $this->User->id = 1; $this->User->saveField('remarks','empty'); } $this->redirect('.'); } を記述しています。 しかし、どうしても「!empty($this->data)」の判別によってemptyとなってしまいます。 User.remarksの部分をUserdetailにして色々ためしましたが、どうしても値の受け渡しがうまくいかないのです。 どなたかご教授を宜しくお願い致します。

    • ベストアンサー
    • PHP
  • cakephpでのダウンロード機能の実装について

    cakephpで画像のダウンロード機能を実装しています。 webroot/imgに画像は入っています。 controllerで public function download($filename = null){ $this->autoRender = false; $this->response->file('img/' . $filename); $this->response->download($filname); } とし、 viewで <?php echo $this->Html->link('ダウンロード', array('controller' => 'images','action' => 'download', $image['Model']['filename'])); ?> このようにリンクしています。 ファイル名が英語の画像は問題なくダウンロードできるのですが、ファイル名が日本語の画像がダウンロードできません。 The requested file img/日本語ファイル名.jpg was not found or not readable Error: The requested address '/illusts/image/%~.jpg' was not found on this server. リンクをクリックするとこのように表示されます。 webroot/imgにはちゃんと画像は入っているのですが・・・。 どのようにしたら、日本語名のファイルもダウンロードできるようになるのでしょうか。 どなたかご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Undefined indexというエラーについて

    初めまして。プログラミング初心者です CakePHPでちょっとした機能、つまりあるページには注意事項を表示し、 あるページには表示しない。といった単純な実装をしたいです。 app/View/Contracts/detail.ctpというファイルに 下記の判定文を書き、テキストの表示/非表示を試みていますが エラーが表示されてしまいます。 Notice (8): Undefined index: status [APP/View/Contracts/detail.ctp, line 34] ーーーーーーーーーーーーーーーーーーーーーーーーーー 行 コード 33 <?php 34 if($this->request->query['status']) { //判定文 35 36 echo ''; // "全て以外" 37 38 } elseif($this->request->query['campaign_id']) {  //それ以外の判定文 39 40 echo 'テキスト'; 41 } 42 ?> ーーーーーーーーーーーーーーーーーーーーーーーーーー statusというテーブルをSQLで登録してあり、クエリパラメータを判断材料として 実装したいです。 indexとの関係について調べれば良いのでしょうか? どうぞよろしくお願いします。

  • CakePHP データベースを使わずに

    PHP 5.2.6 CakePHP 1.2 データベースを使わずにフォームを作成する場合 <?php echo $form->create('Contact', array('action'=>'entry', 'method'=>'post')))?> と記述するとデータベースに接続しようと、してしましす。 もちろんモデル側では、 var $useTable = false; としてるのですが、どのようにしたらよいのでしょうか? よろしくお願いいたします。

  • CakePHP の default.ctp に処理を書くには。

    CakePHP 初心者です。 現段階で、各 view のテンプレート1つに付き、コントローラーとモデルを用意するということを知りました。また、全体を通しての大元のテンプレートは default.ctp というファイルを用意すれば良いことも知りました。 ですが、常にサイドバーにデータベースより最新10件の投稿を取得し、出力するということがしたい場合、default.ctp に直接コードを書くしかないのでしょうか。default.ctp のコントローラーやモデルを用意することはできないのでしょうか。 とても初歩的な質問になるかと思いますが、ご回答お待ちしております。 面倒でなければ例なども頂けると幸いです。

    • 締切済み
    • PHP
  • CakePHPでのコメント数表示について

    CakePHPを使って簡単な掲示板を開発しているのですが、トップページに 各トピックについたコメント数を表示させる方法で壁にぶち当たってしまっております。 データの取り出し方及び表示方法について教えて頂ければと思います。 DB構造(モデル)としては、 ==================================== ■掲示板(post.php) テーブル:posts id title contents ■コメント(comment.php) テーブル:comments id post_id comment ==================================== となっており、postsにhasMany、commentsにbelongsToで アソシエーションを貼ってあります。 コントローラー(posts_controller.php)では、 ==================================== $data = $this->Post->find('all',array('order' => array('Post.id' => 'desc'))); $this->set('data',$data); ==================================== という処理を行い、 ビュー(/posts/index.ctp)では、 ==================================== foreach($data as $val){ echo "<tr>"; echo "<td><a href='{$val['Post']['id']}'>$val['Post']['title']</a></td>"; echo "</tr>"; } ==================================== としています。 これで、トップページに行くと掲示板トピックスのタイトルの 一覧は表示できるのですが、その横についたコメント数を表示 させたいのです。 例)掲示板のタイトルです(13) 上記のように(○)とさせたいのです。 コントローラーの所でallではなくcountにすることで件数を取りだす ことができる所まではできるのですが、 $cnt = $this->Post->find('count',array('order' => array('Post.id' => 'desc'))); などとやっても本来取り出したいcommentsではなくpostsの件数を取りだす ことになってしまっています。 また、hasManyを利用すると、 Array( [0] => Array( [post] => Array( [id] => 1 [title] => 掲示板のタイトルです [contents] => 掲示板の内容です [comment] => Array( [0] => Array( [id] => 1 [post_id] => 1 [comment] => コメント1です。 [1] => Array( [id] => 2 [post_id] => 1 [comment] => コメント2です。 ・ ・ ・ となる為、ビューでの表示のさせ方にも困っております。

    • ベストアンサー
    • PHP
  • ajaxのレスポンスが取得できない。

    環境【cakePHP2.X, PHP5.5】 cakephpでajaxを試みてますがうまくいきません。 あるサンプルを参考にして ボタンのクリックをトリガに ajaxMethod()を走らせて alertで"tanaka"を表示させたいのですが なぜかOeders/index.ctpのhtmlを 取得し、長々と表示されてしまいます。 意図した結果を取得できるよう アドバイスを戴けたら嬉しいです。 よろしくお願いします。 【OrdersController.php】 class OrdersController extends AppController { function index() { //初期表示処理 } /** * Ajax用関数 */ function ajaxTest() { $this->autoRender = FALSE; if($this->request->is('ajax')) { return $this->data['name']."さん、こんにちは"; //echoでもOK } } } 【add.ctp】 function ajaxMethod() { $.ajax({ url: "Orders/ajaxTest", type: "POST", data: { name : "tanaka" }, dataType: "text", success : function(response){ //通信成功時の処理 alert(response); }, error: function(){ //通信失敗時の処理 alert('通信失敗'); } }); }

  • cakePHP サブミット方法について

    cakePHPについて、質問があります。 以下のように、サブミット時にPHPの関数を呼び出そうとしましたが、呼び出しを行えません。 echo $form->submit('登録', array('id'=>'XX','controller' => 'controller名', 'action' => 'action名' )); お手数ですが、解決方法を教えて頂けますでしょうか? 以上です。

    • ベストアンサー
    • PHP
  • cakephpのビューの使い方

    cakephpのビューの使い方 windowsxp環境にxamppをインストール php:5.3.1 cakephp:1.2.6 書籍を読みながらcakephpを始めました。 フォームを利用するサンプルを試しています。 コントローラーで変数に値をセットし ビューでの変数の表示方法の記述がよくわかりません。 コントローラで $this->set("result",$result); とし ビューctpで <html> <body> <h1>送信結果</h1> <p><?=$result ?></p> </body> </html> と記述されているのですが、ブラウザには変数が表示されません。 <?php echo $result ?>と書けば表示されるのですが <?=$result ?>という書き方ですとなにも表示されません。 どなたかアドバイスをいただけると助かります。 作成日: 2010年4月2日(金) 21時05分

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • GメールやGフォトのストレージ容量が不足している場合、外付けHDに保存する方法があります。
  • ただし、Gフォトからの移動時にはアカウントやログインが必要な場合があるため、紐付けを遮断して画像を簡単に移動したい場合は注意が必要です。
  • また、Windows10とWindows8を使用している場合、互換性にも注意が必要です。
回答を見る