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

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

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

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

JavaScript

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

Q&A

解決済

3回答

1365閲覧

phpからJavaScriptへの文字列の値の渡し方の方法について

qtn.01

総合スコア33

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2020/03/28 03:52

php

1<!DOCTYPE html> 2<head> 3<meta charset="UTF-8"> 4<title>test</title> 5</head> 6<body > 7<?php 8 9 print ('<form name="test">'); 10 11 print('<textarea name="hoge" ID="hogehoge" >'); 12 print('</textarea>'); 13 print('<br><br>'); 14 print('</form>'); 15 16 $moji = "abc"; 17 18 print('<script>'); 19 print('document.test.hoge.value = .$moji.;'); //←$mojiの内容を渡したい。 20 print('</script>'); 21 22?> 23 24</body> 25</html

イメージ説明

phpからjavascriptへ文字列を渡したいのですが、このコードの場合のdocument.test.hoge.valueへの
渡し方がよくわかりません。
どのように、java scriptへ文字列を渡せば良いのでしょうか?
具体的な方法を教えていただければ幸いです。
よろしくお願いします。

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

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

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

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

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

guest

回答3

0

今回の問題にだけ特化すると単に変数展開の問題です。
PHPマニュアル:文字列

php

1<?php 2$test = "hello"; 3 4echo "say ".$test.PHP_EOL; 5echo "say $test".PHP_EOL; 6echo "say {$test}".PHP_EOL; 7echo 'say $test'.PHP_EOL; 8echo 'say '.$test.PHP_EOL; 9

ただ、そこだけ直したとしても出力は下記のようになるので

js

1document.test.hoge.value = .abc.;

おそらくエラーとなります。

下記のように出力されるように組みましょう。

js

1document.test.hoge.value = "abc";

ただ、既に回答やコメントで懸念があるように、
コードが最小限過ぎてどういう機能を実現したいがために今回のことをしたいのか分かりません。

そもそもPHPの実行の方がサーバーサイドでありどう転んでも先に実行されるので、PHPで済む要件であればPHPで済ませておいた方が処理としてはスッキリしますし、速い(あと早い)と思います。

どのようなデータをどのように扱い、どうしていくのか
全体仕様をハッキリされたうえで、どう実現していくかを考えた方が良いと思います。

投稿2020/03/28 04:47

編集2020/03/28 04:48
m.ts10806

総合スコア80875

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

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

0

phpからjavascriptへ文字列を渡したいのですが

その場で実行するのであれば、最初からPHPで<textarea>の初期値を設定するほうが適当かと思います。

投稿2020/03/28 03:55

maisumakun

総合スコア146018

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

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

qtn.01

2020/03/28 03:57

この後も、textareaに値を変えて入力したいのでjavascriptが必要となります。よろしくお願いします。
maisumakun

2020/03/28 04:02

変える値もPHPから出力する、ということでしょうか?
qtn.01

2020/03/28 04:08

そうです。予定としては$mojiに異なる文字列を入れて、java scriptに値を渡して内容を変えていきたいと思っています。
guest

0

自己解決

var name = <?php echo json_encode($moji); ?>;
でできましたー

投稿2020/03/28 05:50

qtn.01

総合スコア33

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

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

m.ts10806

2020/03/28 05:51

単なる文字列を出力するためにjson_encode()を利用するメリットはないように思います。 いずれにしても現在の質問内容だけでは的確なアドバイスには成り得ません。
qtn.01

2020/03/28 05:53

どういうことかよくわかりませんが?
m.ts10806

2020/03/28 09:50 編集

まず、json_encode()など使わずとも下記だけで済みます。 var name = "<?php echo $moji; ?>"; つぎにjson_encode()はあくまで「値をJSON形式にする」機能なので、使い方間違ってます。今回程度のことに使う意味はありません。 https://www.php.net/manual/ja/function.json-encode.php そして、私の回答に書いたように「どのようなデータをどのように扱い、どうしていくのか全体仕様をハッキリ」してない ので、 的確なアドバイスになり得ません。別回答のmaisumakunさんもちょっと困った感じになっています。 質問に提示されたコードだけなら「textareaに初期値を設定する」だけなので 下記だけで済みます。 <textarea><?php echo $moji; ?></textarea> 例え下記であっても、わざわざJavaScriptを介する意味がないです。 >$mojiに異なる文字列を入れて、java scriptに値を渡して内容を変えていきたい JavaScriptはイベント駆動の言語です。 どういうイベントに対してどういう処理をしていきたいかが明らかにならないと誰も答えられません。 単に「要件不明瞭に加えて質問者自身の回答内容は単なる手間」という印象しか残ってません。
kyoya0819

2020/03/28 08:59

<?php $moji; ?> -> <?php echo $moji; ?> では?
m.ts10806

2020/03/28 09:14

おお、ほんとだ。ご指摘ありがとうございます。
kyoya0819

2020/03/28 09:33

まだ一箇所直っていません。
退会済みユーザー

退会済みユーザー

2020/03/28 09:45

php から、JavaScript に値を渡すのに、JSON を使用するのはある意味推奨の方法だと思いますよ。なんせ、エスケープがそこそこシンプルにできるので。 ただ、今の回答にある方法だと全く無意味です。 参考:JSONのエスケープ https://blog.ohgaki.net/json-escape そもそもの話ですけど、コレって ajax とかそっち系の話なんじゃないですかね?まぁ、クローズされてるので、いいちゃいいんですけど^^;
m.ts10806

2020/03/28 09:57

asuchi0819さん コメントだとあまり豆に確認しない癖なおさないと… 対応できた、はず。 te2jiさん エスケープがありましたね。そこは忘れてました。 ただやはり具体的に何を作ろうとしてるなのかわからないと回答者側も困りますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問