![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ざっとした流れ
(1)メインページ、ajaxのライブラリ、csvのローダー、csvファイルを用意します。
(2)メインページにajaxライブラリを組み込み、selectのonchangeを設定します
(3)onchangeでcsvのローダーをよみます
(4)csvのローダーはパラメータをつかってselectをつくって文字列を返します
(5)csvのローダーから受け取ったらajaxライブラリはメインページにselectを表示します
※注意:
メインページとcsvファイルの文字コードが違うと文字化けする可能性があります
csvローダーで適正なヘッダをつけてやるといいかもしれません
ajaxのライブラリは公開された所定のものを利用してください、今回は簡易版を載せておきます
以下、サンプル
//main.htm
<script src="ajax.js"></script>
<script>
function changeFunc(obj,targetID){
var url="csvselectloader.php?file="+obj.value+"&name=y";
getData(url,targetID);
}
</script>
<form>
<span>
<select name="x" onchange="changeFunc(this,'hoge')">
<option value="">選択してください</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</span>
<span id="hoge"></span>
</form>
//ajax.js(ajaxライブラリ)
function createXMLHttpRequest(){
if( window.XMLHttpRequest ){
return new XMLHttpRequest();
}else if( window.ActiveXObject ){
try{
return new ActiveXObject( "Msxml2.XMLHTTP" );
}catch(e){
return new ActiveXObject( "Microsoft.XMLHTTP" );
}
}
return null;
}
function getData_setValue( serverURL, objID ){
var ajax = createXMLHttpRequest();
ajax.open( "GET", serverURL );
ajax.onreadystatechange=function(){
if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){
if(objID!=""){
var obj = document.getElementById( objID );
obj.value = ajax.responseText;
}
}
}
ajax.send( '' );
}
function getData( serverURL, objID ){
var ajax = createXMLHttpRequest();
ajax.open( "GET", serverURL );
ajax.onreadystatechange=function(){
if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){
if(objID!=""){
var obj = document.getElementById( objID );
obj.innerHTML = ajax.responseText;
}
}
}
ajax.send( '' );
}
function getDataPost( serverURL, objID ){
var ajax = createXMLHttpRequest();
ajax.open( "POST", serverURL );
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange=function(){
if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){
if(objID!=""){
var obj = document.getElementById( objID );
obj.innerHTML = ajax.responseText;
}
}
}
ajax.send(obj.name+"="+obj.value);
}
//csvselectloader.php (csvのローダー)
<?PHP
function main(){
$name=(isset($_REQUEST["name"]) and $_REQUEST["name"]!=="" )?$_REQUEST["name"]:NULL;
$file=(isset($_REQUEST["file"]) and preg_match("/^\d+$/",$_REQUEST["file"]))?$_REQUEST["file"]:NULL;
$value=isset($_REQUEST["value"])?$_REQUEST["value"]:NULL;
$filename=$file.".csv";
if(!file_exists($filename)) $file=NULL;
if(is_null($name) or is_null($file)) exit;
header("Content-Type: text/html; charset=UTF8");//適正な文字コードを指定
$h=fopen($filename,"r");
$str="<select name=\"".htmlspecialchars($name)."\">\n";
while (($data = fgetcsv($h, 1000, ",")) !== FALSE) {
$selected=$value===$data[0]?" selected":"";
$str.="<option value=\"".htmlspecialchars($data[0])."\"".$selected.">".htmlspecialchars($data[1])."</option>\n";
}
fclose($h);
$str.="</select>";
print $str;
}
main();
?>
//1.csv
1,テスト1-1
2,テスト1-2
3,テスト1-3
4,テスト1-4
//2.csv
1,テスト2-1
2,テスト2-2
3,テスト2-3
4,テスト2-4
//3.csv
1,テスト3-1
2,テスト3-2
3,テスト3-3
4,テスト3-4
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで質問です。 詳細(写真) ①黄色の部分を全てプルダウンを設定する。 ②リストはG列 ③リ 1 2023/06/16 21:54
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- Excel(エクセル) Excelのプルダウンメニューの内容を人によって可変する方法 2 2023/03/28 14:52
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
- 宅地建物取引主任者(宅建) エクセル 1 2023/01/31 21:29
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング言語で、使える...
-
連動させたいセレクトボックス...
-
php プルダウンメニュー 時刻...
-
選択したタグ、入力した検索文...
-
セレクトフォームで選択した複...
-
input type="hidden"で送る値を...
-
頭文字→大学→学部を選択する入...
-
PHPで診断しておすすめの本を紹...
-
選択されたプルダウンの値を変...
-
複数のセレクトボックスで
-
プルダウンとCSVの連動
-
POSTしたデータがリストボック...
-
PHPの関数実行
-
laravelを利用してコントロール...
-
PHPでURLにジャンプするには?
-
入力フォーム→確認画面→送信画...
-
検索時の選択内容を保持する方法
-
アマゾンのような評価の星を選...
-
エラーを元の画面に表示させるには
-
演算子について教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング言語で、使える...
-
プルダウンとCSVの連動
-
複数のセレクトボックスを1つに...
-
複数 selectフォームから今回on...
-
【PHP&JavaScript】複数の別ウ...
-
「"」(ダブルクォーテーション)...
-
phpで重複チェック
-
phpでのセレクトボックスの値を...
-
php セレクトボックス 値取得
-
<select>文、foreachと初期値設定
-
ラジオボタンの値を受け取ってP...
-
2つのプルダウンメニュから受け...
-
連動させたいセレクトボックス...
-
PHP セレクトボックスの値 GET...
-
Smartyで、セレクトボックスが...
-
現在時刻を反映させた時刻のプ...
-
PHPとpostgreSQL プルダウンの作成
-
[Ethna]selectボックスに空値を...
-
GET又はPOSTで受け取るデータに...
-
プルダウンで選択された値を保持
おすすめ情報