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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

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

Q&A

0回答

1057閲覧

CSVファイルを読みこみ、プルダウンを連動してうごかしたい

nanako23

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

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

0グッド

0クリップ

投稿2021/04/30 06:22

前提・実現したいこと

こんにちは、
初心者で色々なサイトを参考に作成しているのですが、どれもうまくいかず、助けて下さい。
phpとjavaをを用いて
csvを読み込みし、csvから連動したプルダウンを作りたいです。
例えば、csv からプルダウンにて
都道府県を選択し
その都道府県の中から市町村を選択すると
何曜日が来場可能かが選択できるようにしたいのです。

該当のソースコード

test.csv 1,東京都,江戸川区,月曜日 1,東京都,江戸川区,火曜日 1,東京都,練馬区,水曜日 1,東京都,練馬区,木曜日 2,埼玉県,川口市,金曜日 2,埼玉県,川口市,土曜日 <? function fmake_sel_opts($filename, $selected=0, $funcChk="",$name="") { //初期化 $idx=0; $htm=""; $listData=Array(); //ファイルの存在確認 if (!@file_exists($filename)) return false; //ファイルからリストデータを配列に読み込む $fp=@fopen($filename, "r"); while (!@feof($fp)) { $dat=@fgetcsv($fp, filesize($filename), ","); if(!$dat[0]) continue; $listData[$dat[1]][]=$dat[bin2hex()]; } while (!@feof($fp)) { $dat=@fgetcsv($fp, filesize($filename), ","); if(!$dat[0]) continue; $listData[$dat[0]][]=$dat[bin2hex()]; } @fclose($fp); if (!@is_array($listData)) return false; $htm="<select ".$funcChk." ".$name.">\n"; foreach ($listData as $k1=>$v1) { if (@is_array($v1) && $v1[0]!="") { /* グループ化 */ $htm.="<optgroup label='".$k1."'>\n"; $htm.='<option value="">都道府県で絞り込みます</option>'; foreach($v1 as $v2){ $htm.="<option value='".$k1."'".(($idx==$selected) ? " selected" : "")." style='margin-left:1em;'>".$v2."</option>\n"; $idx++; } $htm.="</optgroup>\n"; }else{ $htm.="<option value='".$k1."'".(($idx==$selected) ? " selected" : "").">".$k1."</option>\n"; $idx++; } } $htm.="</select>\n"; return $htm; } ?> <? $filename="test.csv"; $selected="0"; $funcChk='onChange=\'createChildOptions(this.form)\''; $name='name=\'parentS\''; echo fmake_sel_opts($filename, $selected, $funcChk,$name) ?> <script> var idName="childS"; /* 親ジャンルが変更されたら、子ジャンルを生成 */ function createChildOptions(frmObj) { /* 親ジャンルを変数pObjに格納 */ var pObj=frmObj.elements["parentS"].options; /* 親ジャンルのoption数 */ var pObjLen=pObj.length; var htm="<select name='childS'>"; for(i=0; i<pObjLen; i++ ) { /* 親ジャンルの選択値を取得 */ if(pObj[i].selected>0){ var itemLen=<?$dat[2]?>.length; for(j=0; j<itemLen; j++){ htm+="<option value='"+j+"'>"+<?$dat[2]?>+"</option>"; } } } htm+="</select>"; /* HTML出力 */ document.getElementById(idName).innerHTML=htm; } </script> <div id="childS"></div>

試したこと

javaは動いてくれませんでした。
都道府県まではプルダウンできますが、そこから市町村をプルダウンが出てこなかかったです。

phpだけでやろうと
$fp=@fopen($filename, "r");
while (!@feof($fp)) {
$dat=fgetcsv($fp, filesize($filename), ",");
if(!$dat[1]) continue;
if(count($dat)==1){
$listData[]=$dat[2];
}elseif(count($dat)==2){
$listData[$dat[1]]=$dat[2];
}else{
$listData[$dat[0]][$dat[1]]= [$dat[2]];
}
}
@fclose($fp);
試してみたのですが、市町村は選ばれなかったです。

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2021/04/30 07:40

これはJavaではなくJavascriptです
itagagaki

2021/05/06 15:33

やりたいことは、まあまあわかりますが、割と高度ですよ。
nanako23

2021/05/11 01:47

例えば、csvをいったんphpに出力してそこから連動するプルダウンにする方法だと、いかがですか?
itagagaki

2021/05/11 02:54

いかがですか?と言われても。 できると思うのならやってみれば良いのでは?と思いますが。 でも、コーディングに入る前に、まず「設計」をしてみることが必要なのではないかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問