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

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

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

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

JavaScript

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

Q&A

解決済

5回答

26890閲覧

phpの中でjavascriptを実行して変数に格納

coinbura

総合スコア106

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2015/08/26 07:45

PHPの中でjavascriptを実行して、その結果をPHPの変数に格納するにはどのようにすれば良いでしょうか?

例えば、

<script> hoge = 1+2; </script>

のhogeの値をPHPの$hogeに格納するには?

ご教授いただければ幸いです。

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

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

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

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

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

guest

回答5

0

ベストアンサー

同じHTML内でjavascriptの実行結果をPHPに渡して使うことはできません。
javascriptはブラウザで、PHPはサーバで実行されますので戻してもHTML描画時に戻してもPHPでは使えません。

それともjsの結果をPHPに渡して次のアクセス時に使いたいというのであれば
ajaxなどでサーバに渡してあげるか、cookieに書いておくとか逃げ道はあります。

ローカルPC(1台のPC)でXAMPPでサーバを構築していると錯覚しやすいですが
LAMP環境がローカルにあってもブラウザからhttp通信してhtml(css&js)を取得していますので
jsから直接(http)を介さずにPHPに渡すことは不可能です。

投稿2015/08/26 10:29

icham

総合スコア559

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

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

coinbura

2015/08/26 13:31

ajaxを使う方法があったのですね! 検索をかけたらやり方を書いてあるページが結構ヒットしました♪ 今から挑戦してみます。ありがとうございましたm(__)m
guest

0

まず「PHPからJavaScriptを実行する」という事はできません。
なぜなら、PHPはサーバで実行され、JavaScriptはクライアント(ユーザのブラウザ)で実行されるので、お互いが同じデータをやりとりする、という事はできないのです。
つまり、JavaScriptはネットに繋がってなくても動きますが、PHPはサーバにアクセスしない限り動きません。そんな異なる2つの間でデータをやり取りするには工夫が必要です。

【できない】
・javascriptとPHPで同じ変数をシェアしたり、値を相互に入れたり出したりする

【できる】
・POST/GETなどを通じて、サーバとデータを送受信する

例えば…
JavaScriptで値を作ってサーバに送信する、という事はもちろんできます。
サーバとしては、受け取ったデータをPHPで処理する事もできます。

input hiddenなどにJavaScriptで値を入れておいて、フォームをPOSTすれば値はサーバに渡せます。
また、いわゆるAJAXの手法を取る事も可能です。

投稿2015/08/26 13:35

Jake

総合スコア289

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

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

0

ちょっと無理やりですが、自動でsubmitするフォームを作って、自分自身にPOSTしてやれば、$_POSTから取り出せるのでは?

投稿2015/08/26 08:41

KoichiSugiyama

総合スコア3041

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

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

0

できません
phpとjsの実行タイミングは違います

投稿2015/08/26 07:51

mtempa

総合スコア129

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

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

0

文字列を Javascript のコードとして実行する

一応、やろうと思えば…
自分は使ったことないのでこれ以上、聞かれても答えられません。

投稿2015/08/26 11:38

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

szk360

2015/08/27 10:36

この関数、凄いですね。JavaScriptをコンパイルして実行してくれるんですね。 Node.jsがかなり普及してきているので、サーバサイドでJavaScriptのライブラリーを実行できると便利なシーンて増えてくるかもしれませんね。 参考になりました。ありがとうございます。
退会済みユーザー

退会済みユーザー

2015/08/27 10:44

一般的にはPHPからJavaScriptは実行できませんというのが正解でしょうけど、この質問に真正面から答えるとしたら…笑 回答に書いたように使ったことないし、利用場面も思いつかない… Node.jsでやればいいことなので、この関数の存在意義自体を見出せません…。
szk360

2015/08/27 11:29

phpで、サービスを提供しちゃってて、Node.jsのサービスを立てるのも面倒だという場合じゃないですかね。クライアント(ブラウザー側)からサービスを呼び分けるのが基本的には正解でしょうが、WordPressとかPHPベースのアプリを使ってる場合は、便利な場合が多いかもです。 ちなみにどうやってこの関数を見つけましたか?
退会済みユーザー

退会済みユーザー

2015/08/27 11:38

リファレンスを読むのは趣味ですから…笑 結構な頻度でリファレンスは流し読みしてるんです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問