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

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

ただいまの
回答率

90.61%

  • PHP

    19821questions

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

  • JavaScript

    15900questions

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

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

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 10K+

coinbura

score 86

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

例えば、

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

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

ご教授いただければ幸いです。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

checkベストアンサー

+2

同じ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 22:31

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

    キャンセル

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/27 19:36

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

    キャンセル

  • 2015/08/27 19:44

    一般的にはPHPからJavaScriptは実行できませんというのが正解でしょうけど、この質問に真正面から答えるとしたら…笑
    回答に書いたように使ったことないし、利用場面も思いつかない…

    Node.jsでやればいいことなので、この関数の存在意義自体を見出せません…。

    キャンセル

  • 2015/08/27 20:29

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

    キャンセル

  • 2015/08/27 20:38

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

    キャンセル

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    19821questions

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

  • JavaScript

    15900questions

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