定期控除を行った経路の取得
今回のプラクティスでは、定期区間を考慮した運賃計算を実装します。
また、 プラクティス#10 で取得した定期券の文字列をメモしておき、テキストボックスへセットします。
※ プラクティス#8 で作成したコードを基に説明します。
定期区間:<input type="text" id="passRoute" size="80" value="高円寺:JR中央線快速:Up:新宿:JR山手線内回り:Down:品川">
// 定期券情報をセットする searchWord += '&assignDetailRoute='+ document.getElementById("passRoute").value;
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title> Webサービスサンプル </title> <!-- ヘッダ部分 --> <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiDateTime.css"> <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiStation.css"> <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiCondition.css"> <link class="css" rel="stylesheet" type="text/css" href="expCss/expGuiCourse.css"> <script type="text/javascript" src="expGuiDateTime.js?key=rnwfzKX4rvNVZYat"></script> <script type="text/javascript" src="expGuiStation.js?key=rnwfzKX4rvNVZYat"></script> <script type="text/javascript" src="expGuiCondition.js?key=rnwfzKX4rvNVZYat"></script> <script type="text/javascript" src="expGuiCourse.js?key=rnwfzKX4rvNVZYat"></script> <!-- 初期化スクリプト部分 --> <script type="text/javascript"> <!-- var dateTimeApp;// 日付入力パーツ var stationApp1;// 駅名入力パーツ#1 var stationApp2;// 駅名入力パーツ#2 var conditonApp;// 探索条件パーツ var resultApp;// 経路表示パーツ /* * パーツを初期化 */ function init(){ // 日付入力パーツ初期化 dateTimeApp = new expGuiDateTime(document.getElementById("dateTime")); dateTimeApp.dispDateTime(); // 駅名入力パーツ#1初期化 stationApp1 = new expGuiStation(document.getElementById("station1")); stationApp1.dispStation(); // 駅名入力パーツ#2初期化 stationApp2 = new expGuiStation(document.getElementById("station2")); stationApp2.dispStation(); // 探索条件パーツ初期化 conditonApp = new expGuiCondition(document.getElementById("condition")); conditonApp.dispCondition(); // 経路表示パーツ初期化 resultApp = new expGuiCourse(document.getElementById("result")); } function search(){ //入力チェック後に動作 if(checkData()){ var searchWord = ""; // 発着地リストを作成 searchWord +="viaList="+ stationApp1.getStation() +":"+ stationApp2.getStation(); // 探索種別 searchWord += '&searchType='+ dateTimeApp.getSearchType(); // 日時設定 searchWord += '&date='+ dateTimeApp.getDate(); if(dateTimeApp.getSearchType()==dateTimeApp.SEARCHTYPE_DEPARTURE || dateTimeApp.getSearchType()==dateTimeApp.SEARCHTYPE_ARRIVAL){ searchWord += '&time='+ dateTimeApp.getTime(); } // ソート searchWord += '&sort='+ conditonApp.getSortType(); // 探索結果数 searchWord += '&answerCount='+ conditonApp.getAnswerCount(); // 探索条件 searchWord += '&conditionDetail='+ conditonApp.getConditionDetail(); // 定期券情報をセットする searchWord += '&assignDetailRoute='+ document.getElementById("passRoute").value; // 探索を実行 resultApp.search(searchWord,conditonApp.getPriceType()); } } /* * 探索前に入力チェックを行う */ function checkData(){ // メッセージの初期化 var errorMessage=""; if(!dateTimeApp.checkDate()){ // 日付入力パーツのチェック errorMessage +="\n日付を正しく入力してください。"; } if(stationApp1.getStation() == ""){ // 駅名入力パーツの空チェック errorMessage +="\n出発地は必須です。"; } if(stationApp2.getStation() == ""){ // 駅名入力パーツの空チェック errorMessage +="\n目的地は必須です。"; }else{ if(stationApp1.getStation() == stationApp2.getStation()){ // 駅名同一チェック errorMessage +="\n出発地と目的地が同一です。"; } } if(errorMessage != ""){ alert("下記の項目を確認してください。"+errorMessage); return false; }else{ return true; } } // --> </script> </head> <body onLoad="Javascript:init();"> <!-- パーツ表示部分 --> <div id="dateTime"></div> 出発地 <div id="station1" style="width:100%;"></div> 目的地 <div id="station2" style="width:100%;"></div> <div id="condition"></div> <a href="Javascript:search();">このリンクをクリックすることで経路が表示されます</a><br> <div id="result"></div> 定期区間:<input type="text" id="passRoute" size="80" value="高円寺:JR中央線快速:Up:新宿:JR山手線内回り:Down:品川"> </body> </html>