2013-04-29 77 views
0

我是Coldfusion和Java Script的新手,我無法確定使這項工作所需的正確語法。我想要做的是有一個下拉菜單,有三個選項;活動,非活動和全部。目標是,當頁面最初加載時,它默認爲活動並顯示所有活動的託運人。但是,如果用戶想要查看不活動的用戶,他們會從下拉菜單中選擇它,並且數據應該更改爲僅顯示這些值。所有將顯示活動和不活動。根據下拉更改數據輸出

我想這樣做的方式是創建一個名爲Active_status的變量,然後使用Onclick來更改值並刷新頁面。我正在使用if語句來生成數據。

<cfparam name="active_status" default="ACTIVE"> 

這是在一開始就表現出積極的第一

<select name="active_status" id="active_status" class="tx" onchange="editTable(this.value)"> 
     <option value="ACTIVE" selected="selected">ACTIVE</option> 
     <option value="INACTIVE">INACTIVE</option> 
     <option value="ALL">ALL</option> 
</select> 

這是生成頁面

<script language="javascript"> 
function editTable(inVal) 
{ 
    if(inVal == 'ACTIVE') 
    { 
     document.getElementById("active_status").value = "ACTIVE"; 
     window.location.reload(); 
    } 
    else if (inVal == 'INACTIVE') 
    { 
     document.getElementById("active_status").value = "INACTIVE"; 
     window.location.reload(); 

    } 
    else if (inVal == 'ALL') 
    { 
     document.getElementById("active_status").value = "ALL"; 
     window.location.reload(); 

    } 
} 
</script> 

顯示活動的作品中,但每次選擇後的選項代碼只主動演出。我相信這是由於我有默認的,但我不確定我需要使這個工作正確的語法。

如果你能幫助我,這將不勝感激。任何建議都會很棒,或者如果你有更好的方法來做到這一點,我總是渴望學習新事物。

我做了更改,但仍未更改點擊Inactive時未更改?

+0

我沒有看到任何名爲'active_status'的ID,只是名字。你的意思是讓你的選擇ID爲active_status? – lifetimes 2013-04-29 18:15:13

+0

這是否解決了這個問題? – lifetimes 2013-04-29 18:30:26

+0

不用擔心,讓我知道如果它修復它或幫助! – lifetimes 2013-04-29 18:32:38

回答

1

我想這樣做的方式是創建一個名爲Active_status的變量,然後使用Onclick來更改值並刷新頁面。

通過使用Javascript刷新頁面而不進行任何AJAX調用或首先提交表單,您只需重新加載頁面並重新設置客戶端表單數據即可。數據無處不在 - 沒有任何內容被髮送到服務器。

如果要動態更改使用Coldfusion顯示的內容,則必須向Coldfusion頁面發出HTTP請求。你可以用不同的方式做到這一點,但最簡單的方法是使用表單提交。爲了提交一個表單的HTML,你表單需要三樣東西:

  1. 的URL發送的數據(您.CFM頁),它出現在形式action屬性。
  2. 要使用的HTTP方法,其格式爲method屬性。通常,你會使用POST
  3. 一個input標記type="submit"。這是用戶可以點擊提交表單的提交按鈕。

實施例:

<form action="myPage.cfm" method="POST"> 
    <!-- ...form fields go here... --> 

    <input type="submit"> 
</form> 

當表單提交給使用action="POST" ColdFusion頁,該頁面內的ColdFusion代碼然後可以通過使用form範圍訪問提交的表單數據。例如,您可以使用form.active_status從示例中的「active_status」下拉列表中獲取數據。

然後,您可以使用此信息動態確定要在頁面上顯示的內容。示例.cfm頁面:

<cfif form.active_status is 'ACTIVE'>  
    <div>Status is active</div> 
<cfelse>  
    <div>Status is not active</div> 
</cfif> 

備註:您無法直接使用Javascript與Coldfusion進行交互。它們在兩個不同的機器上的兩個不同的環境中執行:JS位於客戶機的瀏覽器中,而CF位於服務器上的JVM中。

+0

(編輯/修正錯字):*通常,您會使用POST *取決於表單的用途。 (OP沒有明確說明)如果僅用於檢索數據,比如搜索表單,那麼'GET'更爲典型。但是,如果它用於修改服務器數據(例如「編輯」表單),則「POST」更合適。 – Leigh 2013-05-02 13:31:23