質問: javascriptの変数をphp側に渡せない理由 wordpressでサイトを作っている時、画面幅を取得してhtmlを出しわけたい部分がありました。 そこで、jqueryで画面幅を取得してその変数をphp分で条件分岐したいと思ったのですが、 うまくいかず、クッキーや「wp_is_mobile()」関数で今のところ実現しています。 javascriptの変数をphp側で直接使えないことはわかったのですが、その理由が詳しく知りたいです。 phpファイルに ------------------------------------------------ 600以上だった時の処理 ------------------------------------------------- みたいな感じで使えたらいいのにとよく思うのですが、 phpはサーバーサイドスクリプト言語だから、phpであらかじめ処理されたものがクライアントに送られてきて、その時にjsが読みこまれるから順番的に使えない・・・・ということでいいんでしょうか。 調べようと思っても微妙にずばっとした回答のものがなく、質問しました。 解説サイトのurlとかでもよいので、よろしくお願いいたします。 プログラミングは初心者です。
回答: 質問者さんのお考えの通り、phpはサーバサイドで実行され、javascriptはブラウザサイドで実行されるからjavascriptの変数の内容がphpで使用できません。 ブラウザからサーバに対してページリクエストが送られると、サーバはphpのプログラムを実行し、その結果をhtml形式でブラウザに返します。 ブラウザは受け取ったhtmlの解釈を行い、javascriptがあればプログラムを実行し、その結果を画面に描画します。 従って、javascriptが実行されている時には、既にphpのプログラムは処理を終了し結果を返してしまっています。 javascriptの処理結果に基づいてサーバサイドの処理を変えたいのであれば、javascriptの実行結果をパラメータとしてサーバにアクセスしなおすか、ajaxを使ってサーバでの実行結果を受け取ってdomを書き換えると言った事が必要になります。