CGI-BBS > JAVA/JavaScript > JavaScript > JavaScriptで取得した値をVBScriptで使用したい


カレッヂ
カレッヂ


質問者 ささ  投稿日 12/1(月) 22:04:40
はじめて質問させて頂きますJavaScript素人のsasaといいます。

今、JavaScriptとあるソフトのVBScriptを使用し、大字のドロップダウンメニューから
ある大字を選ぶとそれに該当する小字のドロップダウンメニューが表示でき、その中の
小字を選んで番地を入力するといった検索フォームを作成しています。
ですが、VBScriptのところでJavaScriptで取得した値をmsgboxで確認すると、1とか
2といった数字しか確認できません。正常に大字1、大字2さらに小字1、小字2と表示
するにはどうすればよいか教えて下さい。

下記に書いた構文はインターネットから探して部分的に変更したもので、元々私が作った
ものではありません。素人の私にもわかるように注記など含めて修正して頂ければ助かります。

すみません、よろしくお願いいたします。

<HTML>
<HEAD>
<TITLE>SELECT タグの連動 (最初にクライアントサイドに一括ダウンロード)</TITLE>
<SCRIPT LANGUAGE=JavaScript>
<!--
function funcSubmit() {
    if (document.formMain.ooaza.selectedIndex == 0 &&
document.formMain.koaza.selectedIndex == 0) {
        window.alert("大字名と小字名を選択してください");
        return false;
    } else if (document.formMain.ooaza.selectedIndex == 0) {
        window.alert("大字名を選択してください");
        return false;
    } else if (document.formMain.koaza.selectedIndex == 0) {
        window.alert("小字名を選択してください");
        return false;
    } else {
        return true;
    }
}
function funcMain(b) {
    if (document.formMain.ooaza.selectedIndex == 0) {
        document.formMain.koaza.length = 1;
        document.formMain.koaza.selectedIndex = 0;
    } else {
        if (b) {
            document.formMain.koaza.length = 1;
            document.formMain.koaza.selectedIndex = 0;
        }
        var koaza = cities[document.formMain.ooaza.selectedIndex - 1];
        document.formMain.koaza.length = koaza.length + 1;
        for (var i = 0; i < koaza.length; i++) {
            document.formMain.koaza.options[i + 1].value = i;
            document.formMain.koaza.options[i + 1].text = koaza[i];
        }
    }
}
var ooazas = new Array("大字1", "大字2", "大字3");
var cities = new Array();
cities[0] = new Array("小字1", "小字2");
cities[1] = new Array("小字3", "小字4");
cities[2] = new Array("小字1", "小字5");
// -->
</SCRIPT>
<Script language="VBscript">
sub srtchipcm()
	ooaza = document.formMain.ooaza.selectedindex '選択された大字を取得
	koaza = document.formMain.koaza.selectedindex '選択された小字を取得
	srtchi = document.formMain.CHIBAN.value 	'入力された地番を取得
	Set objApp = createobject("pcm.app")	    'PCMのオートメーションを取得
Strtemp = "AttrSrch 0 <地番図> p <大字>="&strooaza&" <小字>="&strkoaza&" <地番>="&srtchi
	lngtemp = objapp.docmd(Strtemp)
	if lngtemp <> 1 then 
	msgbox("該当がありません")
	exit sub
	end if
Set objapp = Nothing
end sub
</Script>

</HEAD>
<BODY onLoad="funcMain(false)">
<FORM NAME=formMain METHOD=POST ACTION=result.asp onSubmit="return funcSubmit()">
<SELECT NAME="ooaza" onChange="funcMain(true)">
<OPTION VALUE="" SELECTED>(大字名を選択してください)
<OPTION VALUE="0">大字1
<OPTION VALUE="1">大字2
<OPTION VALUE="2">大字3
</SELECT>
<SELECT NAME="koaza">   
<OPTION VALUE="" SELECTED>(小字名を選択してください)
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
</SELECT>
<input type = "text" name= "CHIBAN">
<input type = "button" value = "検索実行" onClick="srtchipcm()"> 
</FORM> 
</BODY>

プロバイダ参照:
サーバのOS:WINサーバ
パソコンのOS:WinNT系
エディタ:
FTPソフト:
サーバ移転:していない
改造:(未選択)
CGI習熟度:firsttime

回答者 しあわせのツボ  [削除]  投稿日 12/1(月) 22:57:36
●selectedindexは「プルダウンの何番目を選んでいるか」ですから、
取得できる値は当然に0以上の整数になります。
selectedindexでなくvalueを取得するようにすれば解決します。
# 内部処理はselectedindexでやっちゃった方が便利なんですけどね。
●そもそもoption valueに1とか2とかの値を入れているのですから、
それ以外の値が出てきたら困ります。
値として「大字1」を取得したければ、valueにそのように入れてください。
質問者 ささ  [削除]  投稿日 12/2(火) 09:22:55
しあわせのツボさん有り難うございます。

大字にかんしては正常に表示できるようになりました。
ですが、小字はどのようにすればよいか分かりませんでした。<OPTION VALUE="">の""に
直接小字名を入れてもだめようなので、すみませんがどのように記述すればよいか
教えて下さい。

また、大字名は10地区でいいのですが小字名は250地区ぐらいあるます。それを考慮に
いれて、他によい記述方法がありましたら素人の私にも分かるように教えて下さい。

すみませんがよろしくお願いいたします。
回答者 しあわせのツボ  [削除]  投稿日 12/2(火) 18:54:50
小字のvalueを設定しているのは以下の行です。
document.formMain.koaza.options[i + 1].value = i;
これを、直後の行を参考にして
document.formMain.koaza.options[i + 1].value = koaza[i];
と書き換えれば入ると思います。

10の250なら、動作は遅くなりますが十分動くと思います。
私だったら、大字ごとに10枚のHTMLを作ってリンクで誘導し、
入力させるのは小字と地番だけにしますけど。
そうすればJavaScriptいらずです(笑)
質問者 ささ  [削除]  投稿日 12/2(火) 19:35:54
しあわせのツボさん、おかげさまで表示できるようになりました。

これで次のステップ作業に取りかかれます。
本当に有り難うございました。m(_ _)m

このページは終了したので返信(回答)は書きこめません
 


Web裏技