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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

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

JavaScript

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

Q&A

解決済

2回答

6921閲覧

JavaScriptでリクエスト&レスポンスの送受信と表示がしたい

smnsmn

総合スコア175

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

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

JavaScript

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

0グッド

0クリップ

投稿2016/07/05 00:55

編集2016/07/10 06:54

-やりたいこと-
①とあるページにアクセスすると同時に、
JavaScriptでリクエストを送信し、セッション認証を通ったらとある文字列を取得できるようにします。
(送信をクリック等のアクションはありません。)

②文字列取得リクエストのレスポンス受信完了時に、取得した文字列を含む別のJavaScriptを、そのアクセスしたページに表示させます。

この一連の流れを作りたいのですが、普段JavaScriptを使わないため詰まっています。
このJavaScriptを使うのは、CakePHP(PHP)内です。

使用するJavaScriptの関数や、書き方のヒントをご教授頂けませんでしょうか。
特にリクエストの送受信・受信時に表示させる部分・セッション認証が???です。

何卒、よろしくお願い致します。

【追記】
>クリックなどがなくてリクエストを送信するトリガーはなんでしょう? セッション認証をどうやって通す想定でしょうか? 「取得した文字列を含む別のJavaScript」の意味がわかりません。

①トリガーは
>とあるページにアクセスすると同時に
つまりそのページにアクセスした瞬間。そのページを表示した瞬間に実行です。
(それをトリガーと言わないのでしたらすみません、JavaScriptは得意ではなく・・・)

②セッション認証をどうやって通す想定
JavaScriptでセッションを扱ったことがないのですが、
セッションIDやセッション変数での認証のイメージです。セッションIDや変数に入れた値のハッシュ値等など・・

③「取得した文字列を含む別のJavaScript」とは
認証が通ったら、たとえば「hgogehoge」という文字列を返します。
これを、別の動作を行うJavaScript(関数って言ったほうが正しいでしょうか)
$(function(){
});
のなかで、使うイメージです。

わかりづらい説明ですみません。

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

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

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

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

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

yambejp

2016/07/05 01:26

クリックなどがなくてリクエストを送信するトリガーはなんでしょう? セッション認証をどうやって通す想定でしょうか? 「取得した文字列を含む別のJavaScript」の意味がわかりません
guest

回答2

0

ベストアンサー

jqueryを使う前提で記述しますと
https://jquery.com/

とあるページにアクセスすると同時に、 JavaScriptでリクエストを送信し

javascript

1$(document).ready(function(){ 2 ...// 処理 3});

セッション認証を通ったらとある文字列を取得できるようにします。

CakePHPでjsonレスポンスのAPIを用意する。
http://book.cakephp.org/2.0/ja/views/json-and-xml-views.html
仮に下記レスポンスされるAPIを用意したとする。

json

1{retstr: ""}

文字列取得リクエストのレスポンス受信完了時に、

javascript

1$.ajax({ 2 url: "", // cakephpで用意したAPIのURL 3 type: "GET", 4 data: {}, 5 dataType: "json", 6 success : function(response){ 7 ... // 8 9 } 10});

ajaxについて

取得した文字列を含む別のJavaScriptを、そのアクセスしたページに表示させます。

html

1 <div id="retstr"></div>

javascript

1 $("#retstr").text("表示したい文字列");

まとめると

html

1 <div id="retstr"></div>

javascript

1$(document).ready(function(){ 2 $.ajax({ 3 url: "", // cakephpで用意したAPIのURL 4 type: "GET", 5 data: {}, 6 dataType: "json", 7 success : function(response){ 8 $("#retstr").text(response.retstr); 9 } 10 }); 11});

お聞きしたい事はということでよろしいでしょうか。※CakePHPのAPI部分は未記述です。

投稿2016/07/05 02:15

mty.ad

総合スコア145

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

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

smnsmn

2016/07/10 06:55

詳しく説明してくださり、ありがとうございますm(__)m JavaScriptが得意でなく、詰まっていたのですが、イメージがわきました。 参考にさせていただき、実装してみたいと思います! 勉強になりました。ありがとうございました。
guest

0

JavaScriptからHTTPリクエストを送るには、XMLHttpRequest という機能(関数)を使います。

但しこれは、ブラウザごとに挙動が異なることがあるため普通は、jQueryというJavaScriptのライブラリが使われることが多いようです。(他にもあります)

リクエストは非同期で行われるためレスポンスは、通常とは違う方法で処理を行わなければいけません。
非同期なので戻ってくるまで処理が止まるわけではなく、次の処理に移っていきますので、
レスポンスが戻ってくるのは別のタイミング(登録した関数)で処理します。
この辺の詳細は正直私も詳しくありません。(必要になったら調べればいいやと思ってます)

セッション認証 といっているのが、何を表しているのかよく分かりませんが、ID/Passwordなりの情報を送った後のキー保存等の処理であれば、それをすべてJavaScriptで処理して完結する必要があると思います。
(クッキーに保存して再送する等)

多分、もっと詳しい人が回答してくれると思います ^_^;

投稿2016/07/05 02:03

Mr_Roboto

総合スコア2208

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問