質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

885閲覧

CakePHPでフラッシュメッセージを任意のウインドウに表示させたい

yukie1101

総合スコア11

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/12/09 11:49

前提・実現したいこと

Cakephp4を使用して社内システムを構築しています。
ある情報の詳細画面を、windows.open()でサブウインドウを開き、その中で編集させているのですが、
詳細情報を更新した時にフラッシュメッセージがサブウインドウではなく親画面側に表示されてしまいます。
確実にサブウインドウで表示させるための方法を、ご教示いただけるとありがたいです。
よろしくお願いいたします。

該当のソースコード

Javascript

1// サブウインドウでの更新時に、親画面の一覧をリロードして更新内容を反映させる 2$(window).on('beforeunload', function (e) { window.opener.location.reload(); }); 3

PHP

1// HogeController.php 2try { 3 // ...諸々の更新処理 4 $this->Flash->success(__('更新処理が完了しました。')); 5 $this->redirect(['action' => 'view', $data->id]); 6} catch (Exception $e) { 7 $this->Flash->error(__('更新処理に失敗しました。')); 8 $this->redirect(['action' => 'edit', $data->id]); 9}

PHP

1// layout/detail.php 2<!DOCTYPE html> 3<html> 4<head> 5 <?= $this->Html->charset() ?> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <title> 8 <?= $cakeDescription ?>: 9 <?= $this->fetch('title') ?> 10 </title> 11 <?= $this->Html->meta('icon') ?> 12 13 <!-- Webフォント読み込み --> 14 <link href="https://fonts.googleapis.com/css?family=Raleway:400,700" rel="stylesheet"> 15 <!-- jQuery読み込み --> 16 <?= $this->Html->script('https://code.jquery.com/jquery-3.4.1.min.js'); ?> 17 <?= $this->Html->script('https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js'); ?> 18 <?= $this->Html->script('https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-multidatespicker/1.6.6/jquery-ui.multidatespicker.min.js'); ?> 19 <?= $this->Html->script('common'); ?> 20 <!-- CSS読み込み --> 21 <?= $this->Html->css('https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.css') ?> 22 <?= $this->Html->css('https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-multidatespicker/1.6.6/jquery-ui.multidatespicker.min.css') ?> 23 24 <?= $this->Html->css(['style']) ?> 25 26 <?= $this->fetch('meta') ?> 27 <?= $this->fetch('css') ?> 28 <?= $this->fetch('script') ?> 29</head> 30<body> 31 <nav class="detail-nav"> 32 <div class="detail-nav-title"> 33 <h3><?= $title ?></h3> 34 </div> 35 <div class="detail-nav-button"> 36 <?= $this->Html->link(__('閉じる'),'#', ['class' => 'btn_size_small btn_color_navy', 'onclick' => 'window.close(); return false;']) ?> 37 </div> 38 </nav> 39 <main class="main"> 40 <div class="container"> 41 <?= $this->Flash->render() // ここでフラッシュメッセージを表示 ?> 42 <?= $this->fetch('content') ?> 43 </div> 44 </main> 45 <footer> 46 </footer> 47</body> 48</html> 49

補足情報(FW/ツールのバージョンなど)

CakePHPバージョン:4.2.8
PHPバージョン:7.4.16
jQueryバージョン:3.4.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問