\r\n\r\nのhogeの値をPHPの$hogeに格納するには?\r\n\r\nご教授いただければ幸いです。","answerCount":5,"upvoteCount":0,"datePublished":"2015-08-26T07:45:44.515Z","dateModified":"2015-08-26T07:45:44.515Z","acceptedAnswer":{"@type":"Answer","text":"同じHTML内でjavascriptの実行結果をPHPに渡して使うことはできません。\r\njavascriptはブラウザで、PHPはサーバで実行されますので戻してもHTML描画時に戻してもPHPでは使えません。\r\n\r\nそれともjsの結果をPHPに渡して次のアクセス時に使いたいというのであれば\r\najaxなどでサーバに渡してあげるか、cookieに書いておくとか逃げ道はあります。\r\n\r\nローカルPC(1台のPC)でXAMPPでサーバを構築していると錯覚しやすいですが\r\nLAMP環境がローカルにあってもブラウザからhttp通信してhtml(css&js)を取得していますので\r\njsから直接(http)を介さずにPHPに渡すことは不可能です。","dateModified":"2015-08-26T10:29:00.717Z","datePublished":"2015-08-26T10:29:00.717Z","upvoteCount":2,"url":"https://teratail.com/questions/15156#reply-23405"},"suggestedAnswer":[{"@type":"Answer","text":"まず「PHPからJavaScriptを実行する」という事はできません。\r\nなぜなら、PHPはサーバで実行され、JavaScriptはクライアント(ユーザのブラウザ)で実行されるので、お互いが同じデータをやりとりする、という事はできないのです。\r\nつまり、JavaScriptはネットに繋がってなくても動きますが、PHPはサーバにアクセスしない限り動きません。そんな異なる2つの間でデータをやり取りするには工夫が必要です。\r\n\r\n**【できない】**\r\n**・javascriptとPHPで同じ変数をシェアしたり、値を相互に入れたり出したりする**\r\n\r\n**【できる】**\r\n**・POST/GETなどを通じて、サーバとデータを送受信する**\r\n\r\n例えば…\r\nJavaScriptで値を作ってサーバに送信する、という事はもちろんできます。\r\nサーバとしては、受け取ったデータをPHPで処理する事もできます。\r\n\r\ninput hiddenなどにJavaScriptで値を入れておいて、フォームをPOSTすれば値はサーバに渡せます。\r\nまた、いわゆるAJAXの手法を取る事も可能です。","dateModified":"2015-08-26T13:35:21.919Z","datePublished":"2015-08-26T13:35:21.919Z","upvoteCount":1,"url":"https://teratail.com/questions/15156#reply-23424","comment":[]},{"@type":"Answer","text":"[文字列を Javascript のコードとして実行する](http://php.net/manual/ja/v8js.executestring.php)\r\n\r\n一応、やろうと思えば…\r\n自分は使ったことないのでこれ以上、聞かれても答えられません。","dateModified":"2015-08-26T11:38:01.183Z","datePublished":"2015-08-26T11:38:01.183Z","upvoteCount":0,"url":"https://teratail.com/questions/15156#reply-23412","comment":[{"@type":"Comment","text":"この関数、凄いですね。JavaScriptをコンパイルして実行してくれるんですね。\r\nNode.jsがかなり普及してきているので、サーバサイドでJavaScriptのライブラリーを実行できると便利なシーンて増えてくるかもしれませんね。\r\n参考になりました。ありがとうございます。","datePublished":"2015-08-27T10:36:07.208Z","dateModified":"2015-08-27T10:36:07.208Z"},{"@type":"Comment","text":"一般的にはPHPからJavaScriptは実行できませんというのが正解でしょうけど、この質問に真正面から答えるとしたら…笑\r\n回答に書いたように使ったことないし、利用場面も思いつかない…\r\n\r\nNode.jsでやればいいことなので、この関数の存在意義自体を見出せません…。","datePublished":"2015-08-27T10:44:58.771Z","dateModified":"2015-08-27T10:44:58.771Z"},{"@type":"Comment","text":"phpで、サービスを提供しちゃってて、Node.jsのサービスを立てるのも面倒だという場合じゃないですかね。クライアント(ブラウザー側)からサービスを呼び分けるのが基本的には正解でしょうが、WordPressとかPHPベースのアプリを使ってる場合は、便利な場合が多いかもです。\r\nちなみにどうやってこの関数を見つけましたか?","datePublished":"2015-08-27T11:29:13.769Z","dateModified":"2015-08-27T11:29:13.769Z"},{"@type":"Comment","text":"リファレンスを読むのは趣味ですから…笑\r\n結構な頻度でリファレンスは流し読みしてるんです。","datePublished":"2015-08-27T11:38:58.075Z","dateModified":"2015-08-27T11:38:58.075Z"}]},{"@type":"Answer","text":"ちょっと無理やりですが、自動でsubmitするフォームを作って、自分自身にPOSTしてやれば、$_POSTから取り出せるのでは?","dateModified":"2015-08-26T08:41:22.986Z","datePublished":"2015-08-26T08:41:22.986Z","upvoteCount":1,"url":"https://teratail.com/questions/15156#reply-23390","comment":[]},{"@type":"Answer","text":"できません\r\nphpとjsの実行タイミングは違います","dateModified":"2015-08-26T07:51:05.482Z","datePublished":"2015-08-26T07:51:05.482Z","upvoteCount":1,"url":"https://teratail.com/questions/15156#reply-23381","comment":[]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/PHP","name":"PHPに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/15156","name":"phpの中でjavascriptを実行して変数に格納"}}]}}}
質問するログイン新規登録

Q&A

解決済

5回答

28103閲覧

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

0

0

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

総合スコア130

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

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

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.29%

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

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

質問する

関連した質問