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

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

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

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

1502閲覧

セレクトボックスで選択した値を隣のテキストボックスに表示させたい

sasamichan

総合スコア9

PHP

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/01/09 02:09

セレクトボックスで選択した値をテキストボックスに表示させたいのですが、
テキストボックスのidにphpの変数が入っているため書き方がわかりません…

javascriptのコードの4行目の("purpose[$i]")の部分が違うことはわかっているのですが、
var a = <?php echo $i; ?>; などphpの変数を入れられる?などの情報は見つかっても、
こういったパターンの情報が出てこず質問させていただきました。

説明不足、至らない点があると思いますがヒントをいただければ幸いです。

html

1<?php 2 echo '<tr>'; 3 for($i = 1; $i <= 5; $i++){ 4 echo '<td>'.$i.'</td>'; 5 echo '<td><select style="width:15%" class="koutsu-month" id="purpose_select" onchange="myfunc()">'; 6 echo '<option></option>'; 7 foreach($purpose_list as $purpose){ 8 echo '<option value="'.$purpose.'">'.$purpose.'</option>'; 9 } 10 echo '</select><input class="koutsu-textbox form-control-sm" style="width:85%" type="text" value="" id="purpose['.$i.']"> 11 </td>'; 12?>

javascript

1<script type="text/javascript"> 2 function myfunc(){ 3 var selectPurpose = document.getElementById("purpose_select").value; 4 document.getElementById("purpose[$i]").value = selectPurpose; 5 } 6 </script>

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

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

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

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

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

guest

回答3

0

ベストアンサー

selectのIDpurpose_selectが複数できていますので、これも変更。

PHP

1 echo '<td><select style="width:15%" class="koutsu-month" id="purpose_select['.$i.']" onchange="myfunc('.$i.')">';

myfunc(n)で何番目の処理をするかを明示し、

JavaScript

1 function myfunc(id){ 2 var selectPurpose = document.getElementById("purpose_select["+id+"]").value; 3 document.getElementById("purpose["+id+"]").value = selectPurpose; 4 }

もうちょっとスマートにかける気もしますが。

投稿2020/01/09 02:40

Masakin

総合スコア192

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

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

sasamichan

2020/01/09 02:53

教えていただきありがとうございました! purpose_selectのところまで記述していただき無事思い通りにできました。
guest

0

PHP はあまり詳しくないですが、JavaScript の知識で回答します(もしかしたらもっといい方法があるかもしれません)。
結論を述べると、JavaScript の関数として定義されている myfunc の引数を使って渡せばいいかと思います。

PHP

1echo '<td><select style="width:15%" class="koutsu-month" id="purpose_select" onchange="myfunc('.$i.')">'

JavaScript

1function myfunc(i){ 2 var selectPurpose = document.getElementById("purpose_select").value; 3 document.getElementById("purpose[" + i + "]").value = selectPurpose; 4}

また、このコードだと、id が purpose_select なセレクトタグがいくつも生成されるのであまりよくありません。
セレクトタグの id も $i の変数を含めた方がいいかと思います。

投稿2020/01/09 02:40

nerianighthawk

総合スコア544

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

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

sasamichan

2020/01/09 02:51

教えていただいた内容でできました! お力を貸していただきありがとうございました!
guest

0

JavaScriptで兄弟要素取得してそのidを使えば良いのでは。

DOM操作となるのであくまでブラウザに表示されたHTMLをベースに考えてください。
ブラウザに表示された時点でPHPの役目は終わっています。

投稿2020/01/09 02:35

編集2020/01/09 02:42
m.ts10806

総合スコア80852

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

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

sasamichan

2020/01/09 02:50

DOM操作!恥ずかしながら初めて聞きました… 調べてみます、ありがとうございます!
m.ts10806

2020/01/09 02:58

「JavaScriptで操作しやすいようなHTML出力」を心がけたら良いかと
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問