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

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

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

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

JavaScript

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

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

解決済

1回答

3148閲覧

javascriptでのセレクトボックスの値の変更について

kinmo_mark2

総合スコア10

PHP

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

JavaScript

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

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

1クリップ

投稿2014/10/27 07:44

いつも大変お世話になっております。

私現在課題の一部が詰まってしまっていて前に進めずにいます。
課題の内容としてはFuelPHP+MySQLでの掲示板作成といったものなのですが、
その入力フォームの内容に「使用OSとバージョン」というものがあり、
二種類のセレクトボックスによって機能しています。
一つ目のセレクトボックスでOSの大まかな区分をし、
二つ目のセレクトボックスでバージョンの種類が6個選べるようになっており、
DBへも登録をし、表示もさせたいといったものです。
以下が現在私が作成しているフォームのタグ部分とjavascriptの部分になります。

--以下ソース-----------------------------------------------------------------

<select name="os" onchange="teamSet()"> <option value="">OS選択</option> <option value="">Windows</option> <option value="">Linux</option> </select> <select name="second" method="post"> <option value="">バージョン選択</option> <option value=""></option> <option value=""></option> <option value=""></option> <option value=""></option> <option value=""></option> <option value=""></option> </select> <!-- <select name="second" method="post"> <option value="">バージョン選択</option> <option value="debian"></option> <option value="ubuntu"></option> <option value="fedora"></option> <option value="redhat"></option> <option value="CentOS"></option> <option value="Asianux"></option> </select> --> <script> //javascriptによるセレクトボックスのOS内容の変化 //WindowsOSの配列 var windows=new Array( "","windows95","windows98","windowsNT","windows2000","windowsXP","windows7" ); //LinuxOSの配列 var linux=new Array( "","debian","ubuntu","fedora","redhat","CentOS","Asianux" ); function teamSet(){ //オプションタグを連続して書き換える for ( i=1; i<7; i++ ){ //選択したOSによって分岐(配列) switch (document.selbox.os.selectedIndex) { case 0: document.selbox.second.options[i].text="";break; case 1: document.selbox.second.options[i].text=windows[i];break; case 2: document.selbox.second.options[i].text=linux[i];break; } //OSのセレクトボックスの選択番号を0にする document.selbox.second.selectedIndex=0; } -------ソースここまで------------------------------------------------------ 結果と致しましては、データが空となり、DBへ登録されるようになっているようです。 アドバイスやサンプル等いただけるととても助かります。 お忙しいところ大変申し訳ありませんが、ご教授いただけると助かります。

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

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

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

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

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

guest

回答1

0

ベストアンサー

selboxとは何でしょうか?
formのnameでしょうか?
もしformのnameでない場合は動かないと思います。

ちなみにjQueryなどのライブラリの使用を検討されたほうがよりお手軽だと思います。

投稿2014/10/27 08:12

TaMaMhyu

総合スコア1356

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

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

kinmo_mark2

2014/10/27 08:18

お早いご回答ありがとうございます。 説明が足りませんでしたので追記させていただきます。。 ちなみにその通りでselbox=フォーム名となっております。
TaMaMhyu

2014/10/27 08:32

JavaScriptのエラーが出ていないでしょうか?
TaMaMhyu

2014/10/27 08:33

多分わかりました。option要素のvalue属性が空なのでパラメータは空で送信されます。
TaMaMhyu

2014/10/27 08:35

switchのdocument.selbox.os.selectedIndexで正しい値が返ってこないので、どのcaseにも該当しないと思います。
kinmo_mark2

2014/10/27 08:35

ご回答ありがとうございます。 こちらでも確認したところvalueをあらかじめ入力したところデータは登録されました。 つまりはvalueを変換させないとwindowsとlinaxの選択はできないということでしょうか?
TaMaMhyu

2014/10/27 08:37

switchは大丈夫かもしれませんね。ただosパラメータは空しか送信されないと思います。
TaMaMhyu

2014/10/27 08:42

自分のところで実行してみたところ、一応殆どそのままで動きました。 記載しているコードが半端なので実際どうなっているかわかりませんが、 とりあえず、閉じ中括弧が足りなかったので、JavaScriptのエラーになっていました。
kinmo_mark2

2014/10/27 08:44

ありがとうございます。ちなみにですが現在の文に何か追記してvalueを選択によって変換させることは可能でしょうか?それとも元々の書き方から変えたほうがいいのでしょうか?
TaMaMhyu

2014/10/27 08:46

失礼しました。雑なコメントをしていました。 単にsecondにvalueをセットしていないのが原因です。
TaMaMhyu

2014/10/27 08:48

document.selbox.second.options[i].value を変更しないとパラメータは空のままです。
kinmo_mark2

2014/10/27 09:03

ありがとうございます。switch文を以下のように設定したところ満足する動きになりました。何度もお聞きして申し訳ありませんでした。 以下switch文です。 switch (document.selbox.os.selectedIndex) { case 0:document.selbox.second.options[i].text="";break; case 1:document.selbox.second.options[i].text=windows[i]; document.selbox.second.options[i].value=windows[i];break; case 2:document.selbox.second.options[i].text=linux[i]; document.selbox.second.options[i].value=linux[i];break; } --------------------------------------------------------------------------------- 本当に助かりました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問