2011-05-12 9 views
3

我有在線酒店預訂系統腳本,其中房間價格和房間類型使用php從數據庫中拉出。我只有2個房間在這個系統。一個可容納最多4人,另一種可達6 預約已日期,類型的房間(X套件),其可以從0被選擇爲1,其次是價格每間客房每晚120歐元。我也可以選擇。定價爲每間客房每晚120人,最多可容納2人。對於每個額外的人,20被添加到價格。所以如果套房中有3人,價格將是140.我試圖讓它自己工作,但我不能根據選定的人數來改變價格。 人的選擇爲標籤代碼如下:預訂表:從下拉列表中選擇不同選項的價格變化 - PHP和Javascript

<select name="people" class="FormFields" onChange="checkBookingForm()" style="width:70px"> 
     <?php for ($i=1; $i<=$SETTINGS["room_people"]; $i++) { 
       if ($i==$_REQUEST["people"]) { 
        $selected='selected'; 
        } 
        else { 
        $selected=''; 
        } 
     ?> 
     <option value="<?php echo $i; ?>" <?php echo $selected; ?>><?php echo $i; ?></option> 
     <?php }; ?> 
     </select> 

功能checkBookingForm()的文本變更交易時選擇了一個特定的房間,它會告訴人們這間客房可容納的數量。該函數是在這裏:

<script language="javascript" type="text/javascript"> 

功能checkBookingForm(){ VAR allRooms =新的Array(); var totalPeople = 0;

for(i=0; i<document.NewBookingFrm.elements.length; i++) { 
    if(document.NewBookingFrm.elements[i].type=="select-one") { 
     name_t = document.NewBookingFrm.elements[i].name; 
     if (name_t!=='people') { 
      value_t = document.NewBookingFrm.elements[i].value; 
      totalPeople = parseInt(allRooms[name_t]) * parseInt(value_t) + totalPeople; 
     } 
    } 
} 

if (totalPeople==1) { 
    var acP = 'person'; 
} else { 
    var acP = 'people'; 
}; 


if (totalPeople!=document.NewBookingFrm.people.value) { 
    totalPeople = '<strong style="color:red; font-size:14px">'+totalPeople+'</strong>' 
} 

document.getElementById('PeopleAccommodate').innerHTML = 'selected room(s) can accommodate ' + totalPeople + ' ' + acP; 

}

我曾嘗試不同的東西,但我同時學習JavaScript,我沒有在任何地方獲得。我仍然試圖理解DOm的工作原理。如果任何人都可以指向我的方向真的很感激。我明白我有什麼用代碼來完成:

  1. 首先檢查有多少人 選擇
  2. 如果任何 房間被選中,那麼檢查(如果值是1)
  3. ,如果一個房間選擇 相應地增加價格或 減少它。

可用客房的號碼,我現在有這樣的代碼:

<select name="room_<?php echo ReadFromDB($row["id"]); ?>" class="FormFields" onChange="checkBookingForm()" style="width:70px"> 
    <option value="0">0</option> 
    <?php for ($i=1; $i<=$available_rooms; $i++) { 
     if ($i==$booked_rooms["quantity"]) $selected=' selected'; else $selected=''; 
    ?> 
    <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $i; ?></option> 
    <?php }; ?> 
    </select> 
    x 
「>

鏈接到一個更完整的代碼:http://jsfiddle.net/x6ZYB/

回答

0

以及你混合PHP和HTML中的不尋常的方式 你應該使用heredoc更好的代碼也許吧?

好吧,你不應該發佈p hp代碼 有很多錯誤 hm爲什麼不試圖用jquery和.value()獲取輸入的值,當它們被點擊並用.html()更改價格?

那麼代碼對我來說就是一團糟 你有這個html輸出的例子嗎? 也是價格寫入計算的div?

+0

謝謝你的回覆Daniel.the事情是我沒有編碼整個腳本,我只是試圖修改它以適應我想實現的目標。它通過使用iframe標籤集成在一個頁面中。 – Petra 2011-05-16 09:57:48

+0

好,iframes。這些可以用div和.load()替換爲jquery,這樣您就可以通過javascript訪問div的內容,而無法使用javascript訪問iframe。 – 2011-05-16 10:00:57

+0

我添加的部分是://檢查房間裏有多少人,併爲每個人收取額外費用 \t if($ _REQUEST [「people」] == 3){ \t \t $ Price = $價格+ 20; ($ _REQUEST [「people」] == 4){ \t \t $價格= \t} \t else if($ _REQUEST [「people」] == 5){ \t \t $ Price = $ Price + 60; \t} \t else if($ _REQUEST [「people」] == 6){ \t \t $ Price = $ Price + 80; \t} – Petra 2011-05-16 10:17:57

相關問題