adminFare.phpの例
<?php
//閲覧および各種メニュー
include_once("../../../mainfile.php");
//$xoopsOption['show_rblock'] = 0;
include_once(XOOPS_ROOT_PATH."/header.php");
include_once("../class/class.fare.php");
global $xoopsDB, $xoopsUser;
$myts = & MyTextSanitizer::getInstance();
/* display selection menu */
include_once("adminFareCommonHead.php");
/* $fareObj, $selectedRouteID, $selectedGeneralRoute,
$category are defined in adminFareCommonHead.php */
if(!isset($selectedRouteID) || !$selectedRouteID) {
include_once(XOOPS_ROOT_PATH."/footer.php");
return;
}
//$joge = $selectedRouteID;
// ここから上は基本設定
////////////////////////////////////////////////////////////////////////////////////////
?>
<link href="../js/Super_Tables/superTables_compressed.css" rel="Stylesheet" type="text/css" />
<style type="text/css">
.fakeContainer { /* The parent container */
margin: 0 0 20px; /* */
border: none;
width: 700px; /* Required to set 表の幅を指定*/
height: 600px; /* Required to set 表の縦を指定*/
overflow: hidden; /* Required to set 要領を超える場合スクロールをつけない(hidden)ようにしている。*/
}
</style>
<?php
echo "<h4>". _AD_BM_FARE_DETAIL ."</h4>";
/* テストのためにだけ使用 */
/*
$majorFare = array();
foreach($_POST as $key => $val) {
if(!preg_match("/^tarea/",$key)) continue;
$a = explode("_",$key);
// echo "<br>". $a[1] . "と" . $a[2] . "のあいだの料金は" . $val . "です。";
$majorFare[$a[1]][$a[2]] = $val;
}
*/
?>
<hr>
<?php
/*
selecting route
*/
$stop = $fareObj->getStopNamesByRouteID($selectedRouteID);
foreach($stop as $k => $val) $stopnojunban[$k] = $val['ID'];
?>
<?php
$junbanByStopID = array_flip($stopnojunban);
?>
<?php
for($i=1;$i<=count($stopnojunban);$i++) {
for($j=1;$j<=count($stopnojunban);$j++) {
$f[$i][$j] = 0;
}
$kikanCheck[$i]=0; /* 基幹なら1、それ以外0 */
}
foreach($_POST as $key => $val) {
if(!preg_match("/^tarea/",$key)) continue;
$a = explode("_",$key);
$f[$junbanByStopID[$a[1]]][$junbanByStopID[$a[2]]] = $val;
$kikanCheck[$junbanByStopID[$a[1]]] = 1;
}
/* 基幹バス停の時刻だけ送信した場合は,補完*/
if(isset($_POST['post_major_stops'])) {
for($i=1; $i<count($stopnojunban);$i++) {
if($kikanCheck[$i]==1) {
for($j= count($stopnojunban)-1; $j>$i; $j--) {
if($f[$i][$j]==0) $f[$i][$j] = $f[$i][$j+1];
}
} else { //基幹でなかったら
for($j=$i+1;$j<=count($stopnojunban);$j++) {
$f[$i][$j] = $f[$i-1][$j];
}
}
}
}
/* データベースへの登録 */
if(isset($_POST['post_major_stops']) || isset($_POST['submit_all'])) {
for($i=1; $i<count($stopnojunban);$i++) {
for($j=$i+1;$j<=count($stopnojunban);$j++) {
$fareObj->writeFareDB($stopnojunban[$i], $stopnojunban[$j], $selectedRouteID, $f[$i][$j]);
}
}
}
//料金表の表示
$fare = $fareObj->getFareByRouteID($selectedRouteID); // 改めてデータベースから取得
echo '<form method="POST">';
echo "<input type='hidden' name='route_id' value='${selectedRouteID}'/>";
echo '<div class="fakeContainer">';
echo '<table id="demoTableA">';
//1行目バス停名を上から2番目から表示
echo"<tr><th>" . _AD_BM_STOP_NAME ."</th>";
for($i=2;$i<count($stop)+1;$i++){
echo"<th>" . $stop[$i]["Name"] . "</th>";
}
echo"</tr>";
for($i=1;$i<count($stop);$i++){
echo'<tr><td size="10">' . $stop[$i]["Name"] . "</td>";
for($j=2;$j<count($stop)+1;$j++){
if($j <= $i){
echo'<td></td>';
}else{
$tmpfare = isset($fare[$stop[$i]["ID"]][$stop[$j]["ID"]])? $fare[$stop[$i]["ID"]][$stop[$j]["ID"]] : "";
if($tmpfare!=""){
$tmp ='<td class="active"><input type="text" size="5" name="tarea_' . $stop[$i]["ID"].'_'.$stop[$j]["ID"] . '" value="'.$tmpfare.'"></td>';
}else{
$tmp ='<td class="active"><input type="text" size="5" name="tarea_' . $stop[$i]["ID"].'_'.$stop[$j]["ID"] . '" value=""></td>';
}
echo $tmp;
}
}
echo "</tr>";
}
echo "</table>";
echo "</div>";
echo "<input type='submit' name='submit_all' value='". _AD_BM_SUBMIT . "'></form>";
?>
<script type="text/javascript" src="../js/Super_Tables/superTables_compressed.js"></script>
<script type="text/javascript">
//<![CDATA[
(function () {
new superTable("demoTableA", {
cssSkin : "sDark",
fixedCols : 1
});
})();
//]]>
</script>
<?php
include_once(XOOPS_ROOT_PATH."/footer.php");
?>