定期経路の取得用にコールバック関数を追加
今回のプラクティスでは、定期控除用の文字列を取得する機能を追加します。
また、第1経路を自動的にテキストエリアへセットするようにコールバック関数を設定します。
/* * 探索実行時のコールバック */ function result(isSuccess){ if(!isSuccess){ alert("探索結果が取得できませんでした"); }else{ document.getElementById("passRoute").value = resultApp.getTeiki(); } }
//探索直後に呼び出すように変更 resultApp.search(searchWord,conditonApp.PRICE_TEIKI,result);
//定期券の表示に変更 定期区間:<input type="text" id="passRoute" size="80">
<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(dateTimeApp.SEARCHTYPE_PLAIN); // 駅名入力パーツ#1初期化 stationApp1 = new expGuiStation(document.getElementById("station1")); stationApp1.dispStation(); stationApp1.setConfigure("type",stationApp1.TYPE_TRAIN); // 駅名入力パーツ#2初期化 stationApp2 = new expGuiStation(document.getElementById("station2")); stationApp2.dispStation(); stationApp2.setConfigure("type",stationApp2.TYPE_TRAIN); // 探索条件パーツ初期化 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(); //探索直後に呼び出すように変更 resultApp.search(searchWord,conditonApp.PRICE_TEIKI,result); } } //追加分 /* * 探索実行時のコールバック */ function result(isSuccess){ if(!isSuccess){ alert("探索結果が取得できませんでした"); }else{ document.getElementById("passRoute").value = resultApp.getTeiki(); } } /* * 探索前に入力チェックを行う */ 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"> </body> </html>