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

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

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

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

JavaScript

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

Q&A

解決済

2回答

838閲覧

動的にJAVASCRIPTで作成した要素の中に、PHPで別ファイルから読み込んだ値を挿入したい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2018/06/13 07:15

編集2018/06/13 08:04

JAVASCRIPTで動的に要素を作成しているので、HTMLファイルのBODYには要素がありません。
※簡潔なテストケースを掲載しています。

html

1<body> 2 <script type="text/javascript" src="script.js"></script> 3 </body>

script.js

javascript

1var myDiv = document.createElement("div"); 2var myText = document.createTextNode("hello world"); 3myDiv.appendChild(myText); 4myDiv.setAttribute("id","mydiv"); 5document.body.appendChild(myDiv);

この要素にPHPでの変数$valueを挿入したいのですが、どうすればいいでしょうか?

PHP

1<div id="mydiv"><?php echo $value; ?></div>

このようなケースは、PHPのDOMDOCUMENTクラスを使うのでしょうか?
http://php.net/manual/ja/class.domdocument.php

他にもよい方法がございましたら、教えていただけると幸いです。

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

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

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

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

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

m.ts10806

2018/06/13 07:43

コードはなるべく全体がわかるようにご提示ください。また、PHPはサーバー側の言語、javascriptはクライアント側の言語で如何に動的であろうとjavascriptのあとに動かすことはできない(Ajaxなどからリクエストを送る場合は別) というのは認識済みですか?
退会済みユーザー

退会済みユーザー

2018/06/13 08:06

回答ありがとうございます。ページのロードがすべて終わった後でも、PHPは動かないということでしょうか?
miyabi_takatsuk

2018/06/13 08:07

ロードが終わったら、phpはもう処理を終えてしまった後です。
m.ts10806

2018/06/13 08:11

ロードはクライアント側です。PHPはその前に役割を終えています。
退会済みユーザー

退会済みユーザー

2018/06/13 08:11

ありがとうございます。このようなケースでは、PHPとJAVASCRIPTを一緒に使わずに、どちらかにするべきでしょうか?元ファイルをJSONかARRAYに変換して、JAVASCRIPTで読み取るのが最適でしょうか?
m.ts10806

2018/06/13 08:13

ケースバイケースですね。どのような情報をどのように扱いたいのか、具体的に記載してください
退会済みユーザー

退会済みユーザー

2018/06/13 08:27 編集

テストケースのようにだたPHPでDATファイルから値(文字列)をもってきて、HTMLに表示したいだけです。表示したい変数は2個だけです。このような複雑ではないデータのケースはどのような手段がありますか?
miyabi_takatsuk

2018/06/13 08:32

sarah358さん、mts10806さんがおっしゃる通り、何がしたいかの目的や、何から情報をとってきたいかなど、全て質問に加えてください。
m.ts10806

2018/06/13 08:37

ざっくり回答しましたが要件なので質問本文に追記してください。
退会済みユーザー

退会済みユーザー

2018/06/13 08:41

情報が足らず申し訳ございません。今回すべてを追加するのを躊躇した理由は二つあり、かなりの情報量になりチェックが大変なのと、また業務特定の言葉などでてくるので、修正を加えてから投稿すると少し時間がかかります。私なりにはいただいた回答で満足していますのでベストアンサーを選ばせていただいて、今回のご回答が私の問題の解決にならない場合には、別の質問で質問させて頂きたいと思います。ありがとうございました!
m.ts10806

2018/06/13 08:43 編集

いずれにしても全体の流れがわかる情報は必要ですよ。質問内容が不十分ですと解決まで時間を要したり解決しなかったりします。
退会済みユーザー

退会済みユーザー

2018/06/13 08:50

全体の流れがわからくてごめんなさい。次回は詳しく全体がわかるように投稿いたします。ベストアンサーに選ぶことができず申し訳ございません。いただいた情報に感謝しています。
guest

回答2

0

既に回答が出ているように先にjavascriptの変数に埋め込んだ状態で利用するのもありですが、html上に出てしまうのが嫌であれば、
ロード時にAjaxよりphpを実行し、phpで取得した情報を返却
あとは受け取った情報を表示。
複数あるのでしたらPHP側で配列に詰めこみjson_encode()で返すと良いです(AjaxのdataTypeはJSONにすること)

投稿2018/06/13 08:36

m.ts10806

総合スコア80765

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

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

退会済みユーザー

退会済みユーザー

2018/06/13 08:42

ありがとうございます!!感謝します!
guest

0

ベストアンサー

少し、頭を柔らかくする必要があるかも。
下記でいかがでしょうか。

html

1<body> 2 <script> 3 var $grovalValue = "<?php echo $value; ?>"; 4 </script> 5 <script type="text/javascript" src="script.js"></script> 6</body>

javascript

1var myDiv = document.createElement("div"); 2var myText = document.createTextNode(window.$grovalValue); 3myDiv.appendChild(myText); 4myDiv.setAttribute("id","mydiv"); 5document.body.appendChild(myDiv);

先に、html上で、windowルートの変数にphpの値を突っ込んで、
その後に読むJSで使用するわけです。

ちなみに、idに関しては、わざわざsetAttributeを使わなくても、

javascript

1myDiv.id = "mydiv";

でオーケーです。
ネイティブなら。

投稿2018/06/13 08:11

編集2018/06/13 08:13
miyabi_takatsuk

総合スコア9528

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

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

退会済みユーザー

退会済みユーザー

2018/06/13 08:23

ありがとうございます!勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問