請問一下~ 一個有關預約系統

edited 十月 2013 in Javascript
請問一下各位大大們~
我現在做一個預約的系統
出現了好大的問題


我有附上我目前的頁面
首先在操作時先選擇左上的小月曆
選擇後送出查詢將會出現選擇日的預約狀況
接下來就可以準備開始預約
有人頭的是被預約了
只要我們點選下面有<input type="checkbox">的地方
選擇後它將會把你選擇的(會議室、時間)顯示到右上方

請問這樣的話我要做如對以下的程式做修改呢???


[size=small]<?
 if ($_POST == '') {
  $bdate = substr(date('Y/m/d'),0,10);
 } else {
  $t = strtotime($_POST);
  $bdate = date('Y/m/d',$t);
 }
?>
<style type="text/css">
<!--
.input1 {height: 20px;}
-->
</style>

<div id="checkedTimeArea">
<form method="post" name="admin" enctype="multipart/form-data" onSubmit="return checkForm(this);">
<table width="942" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
 <td>會議室預約</td>
</tr>
<tr>
 <td>
 <table width="942" border="0" cellspacing="0" cellpadding="0">
 <tr>
  <td width="300" align="center"><?php include("calendar.htm");?></td>
  <td width="42"> </td>
  <td width="600">
  <table width="600" border="0" cellspacing="0" cellpadding="0">
  <tr>
   <td width="110" height="30" align="right">預 約 者:</td>
   <td width="190"><input name="baname" type="text" size="10" value="<?php print $buserInfo[0]?>" class="input1" disabled></td>
   <td width="110" align="right">分  機:</td>
   <td width="190"><input name="baext" type="text" size="8" value="<?php print $buserInfo[0]?>" class="input1" disabled></td>
  </tr>
  <tr>
   <td height="30" align="right">預約日期:</td>
   <td colspan="3"><INPUT value="<? print $bdate ?>" size="10" name="bdstart" class="input1"> ~ <INPUT value="<? print $bdate ?>" size="10" name="bdend" class="input1"></td>
  </tr>
  <tr>
   <td height="30" align="right">預約時間:</td>
   <td colspan="3"><INPUT size="10" name="<? print 'baltime'.$j ?>" class="input1"> ~ <INPUT size="10" name="<? print 'baltime'.$j ?>" class="input1"></td>
  </tr>
  <tr>
   <td height="30" align="right">預約會議室:</td>
   <td colspan="3"><input name="baroomsn" id="text1" type="text" size="20" class="input1"></td>
  </tr>
  <tr>
   <td height="30" align="right">預約設備:</td>
   <td colspan="3"><input name="bapsn" type="text" size="20" value="<?php print $buserInfo[0]?>" class="input1"></td>
  </tr>
  <tr>
   <td height="30" align="right">與會地點:</td>
   <td colspan="3"><select size="1" name="barsn"><option value="x">無</option><option value="<?php print($barInfo[0]);?>"><?php print($barInfo[0]);?></option></select></td>
  </tr>
  <tr>
   <td align="right" valign="top">用途說明:</td>
   <td colspan="3"><textarea cols="50" rows="3" name="bamemo"></textarea></td>
  </tr>
  <tr>
   <td> </td>
   <td colspan="3"><input type="submit" name="submit" value="新 增"> <a href="list.eip" target="_blank"><u>資 源 說 明</u></a></td>
  </tr>
  </table>
  </td>
 </tr>
 </table>
 </td>
</tr>
<tr>
 <td><hr color="#CCCCCC" width="80%"></td>
</tr>
<tr>
 <td align="center">
 <table width="100%" border="1" cellspacing="0" cellpadding="0">
 <tr align="center" bgcolor="#FFFFD7">
  <td><font color="#FF0000"><u>
<? print $bdate;?>
</u></font></td>
<?
for ($a=8; $a<21; $a++) {
 if ($a<10) {
       $b = '0'.$a;
       $c = $a+1;
       print '<td width="28"><font size="1">'.$b.'00<br>|<br>'.$b.'30</font></td>';
       print '<td width="28"><font size="1">'.$b.'30<br>|<br>'.$c.'00</font></td>';
 } else {
       $c = $a+1;
       print '<td width="28"><font size="1">'.$a.'00<br>|<br>'.$a.'30</font></td>';
       print '<td width="28"><font size="1">'.$a.'30<br>|<br>'.$c.'00</font></td>';
 }
}
?>
 </tr>
<SCRIPT LANGUAGE="php">
include("config.php");
$sqltxt = "SELECT * FROM bookarea WHERE barstatuse ='o';";
$get_sqldata = mysql_query($sqltxt) or die("SQL指令無法送出!" . mysql_error( ));
</SCRIPT>
<?
if (mysql_num_rows($get_sqldata) != 0){
 while ( $row = mysql_fetch_array($get_sqldata) ) {
    print '<tr height="25">';
    print '<td align="center" bgcolor="#DDDDDD"><font size="2">'.$row.'</font></td>';
?>
<SCRIPT LANGUAGE="php">
if($_POST == '送出查詢'){ // 查詢程序
  if ($bdate=='') {
          $date1 = " AND baldate = NOW()";
  } else {
          $date1 = " AND baldate = '".$bdate."' ";
  }/**/
  $sqltxt2 = "SELECT * FROM bookarealist WHERE balstatuse = 'o' AND baldate = '".$bdate."' AND barsn = '".$row."';";

  $get_sqldata2 = mysql_query($sqltxt2) or die("SQL指令無法送出!" . mysql_error( ));
} else {
  $sqltxt2 = "SELECT * FROM bookarealist WHERE balstatuse = 'o' AND baldate = NOW() AND barsn = '".$row."';";

  $get_sqldata2 = mysql_query($sqltxt2) or die("SQL指令無法送出!" . mysql_error( ));
}
</SCRIPT>

<?
if (mysql_num_rows($get_sqldata) != 0){
  $row1 = mysql_fetch_array($get_sqldata2);
  for ($j=1;$j<27;$j++){
    print '<td align="center">';
    if ($row1 != '') {
       print '<img src="images/CF2E.gif">';
    } else {
       print '<input type="checkbox" name="baltime" value="1" onclick="Setdata(this.checked,GetText('.$j.'))" >';
    }
    print '</td>';
  }
  print '</tr>';
}
}
}
?>
</form>
 </table>
 </td>
</tr>
</table>
</div>[/size]

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3671

評論

  • edited 十月 2008
    再多加一些備註

    我在時間上是用半小時來區分總共有26段
    而這26段在資料庫裡的欄位是用baltime1、baltime2、baltime3、....、baltime26表示
    假如我現在扣選baltime7~baltime18
    那在
    [size=small]<INPUT size="10" name="<? print 'baltime'.$j ?>" class="input1"> ~
    <INPUT size="10" name="<? print 'baltime'.$j ?>" class="input1">[/size][/size]
    上要如何可以出現實際扣選的時間數字呢???


    而且我在扣選時
    如果是扣了baltime7、baltime18
    中間的baltime8~baltime17將可以自動做扣選


    以下是實際的預約時間對照表:
    [size=small]baltime1=>0800~0830
    baltime2=>0830~0900
    baltime3=>0900~0930
    baltime4=>0930~1000
      .
    baltime7=>1100~1130
      .
    baltime18=>1630~1700
      .
    baltime25=>2000~2030
    baltime26=>2030~2100[/size]
  • edited 十月 2008
    看樣子是很古老的程式,也許你該透過公司找個能夠解決程式設計問題的人進來。
  • edited 十月 2008
    那請問Kiang
    我現在急需要先完成此段程式
    我要如何做了???
  • edited 十月 2008
    checkbox在onclick的時候
    程式已經做處理了不是嗎?
    <input type="checkbox" name="baltime" value="1" onclick="Setdata(this.checked,GetText('.$j.'))" >
  • edited 十月 2008
    你的想法很清楚,但是一次提到太多問題,讓人無從回答起;但是你需要的功能應該都算基本語法,像是 javascript onclick 事件去改變表單欄位的 value 。

    另外,預約時讓人透過下拉選單選取單一組起訖時間會比較實際,你的表單允許多選情況下, PHP 端要做許多判斷與容錯。

    你可以參考 MRBS 的作法:
    http://mrbs.sourceforge.net/
Sign In or Register to comment.