2015-10-14 61 views
2

我正在使用ColdFusion和jQuery製作單頁應用程序。我試圖找出如何添加一個新的經銷商與我的「新」按鈕,打開一個模式要求新的經銷商名稱..接受後,我想更新數據庫與下一個可用的「ID」添加經銷商和以某種方式有名字,然後出現在經銷商下拉刷新。目前,我有一個經銷商下拉從數據庫調用填充像這樣一個CFC:CF/jQuery添加到數據庫並刷新到選擇

index.cfm

<cfset cfcDealerTracking = new dealerTracking()> 
    <cfset dealerListing = cfcDealerTracking.allDealers()> 

<div class="col-xs-12"> 
    <label for="Dealers"></label> 
    <div class="input-group"> 
    <select name="Dealers" id="Dealers" class="form-control"> 
      <option value="" selected></option> 
     <cfoutput query="dealerListing"> 
      <option value="#Name#">#Name#</option> 
     </cfoutput> 
    </select> <span class="input-group-btn"> 
    <button type="button" class="btn btn-default" data-toggle="modal" data-target="#NewDealer"><u>N</u>EW</button> 
          </span> 

    </div> 
</div>  

dealerTracking.cfc

<cfcomponent> 

<cffunction name="allDealers" access="public" returntype="query"> 
    <cfset var getDealers = ''> 
    <cfquery name="getDealers"> 
     SELECT Name 
     FROM dbo.Dealer_Track_Dealers 
     ORDER BY Name 
    </cfquery> 
    <cfreturn getDealers> 
</cffunction> 

</cfcomponent> 

http://jsfiddle.net/mbr4wb5f/7/

我已嘗試:

在index.cfm(un der <cfset dealerListing = cfcDealerTracking.allDealers()>)。

<cfset addedDealer = cfcDealerTracking.insertAddedDealer()> 

附加的功能,以CFC:

<cffunction name="insertAddedDealer" access="public" returntype="boolean"> 
    <cfset var newDealerAdd = ''> 
    <cfquery name="newDealerAdd"> 
     INSERT INTO dbo.Dealer_Track_Dealers (Name) 
     VALUES (#form.NewDealerName#) 
    </cfquery> 
    <cfreturn true> 
</cffunction> 

AJAX調用設置變量(NewDealerSession.cfm):

<cfset session.dealerwork.newdealername = form.NewDealerName > 
    <cfoutput>#SerializeJSON(session.dealerwork.newdealername)#</Cfoutput> 
+0

模態會發布到index.cfm?如果是這樣,並且如果您希望新值出現在列表中,則添加的行應該在列出值的行之前。你的問題有點令人困惑。 –

+0

那麼它是一個單頁面應用程序,所以當您打開時,新按鈕旁邊的下拉列表已經填充。點擊時我想要新的按鈕打開模式,然後輸入新的經銷商名稱。選擇accept後,它將提交到數據庫,然後刷新index.cfm頁面,以使其顯示在「NEW」按鈕旁邊的下拉列表中。 – Vicki

回答

3

大約8年前,我做了類似的事情。我使用了3個文件,我將其稱爲Page1.cfm,page2.cfm和Page3.cfm。

Page1.cfm具有主要的形式,用戶可以隨時添加記錄。它包含這段JavaScript代碼:

function ServiceOther() { 
if (document.someForm.someSelect.value == "OTHER") { 

NewContact=window.showModalDialog("Page2.cfm?someUrlVariables, etc"); 

if (NewContact == true) // return value from dialogue 
window.location="Page1.cfm?urlvariables"; 

} // end if 
}// end of function 

Page2.cfm這包括:

<cfform name="someForm" 
Action="Page3.cfm" 
method="post" 
onsubmit="window.returnValue = true; window.close();"> 

Page3.cfm有代碼來處理來自Page2.cfm的形式,添加記錄,並且也有:

<script language=javascript> 
function CloseWindow() { 
window.open('','_self',''); 
window.opener = top; 
window.close(); 
} 
</script> 

,並完成了

<body onload="window.returnValue = true; CloseWindow();"> 
</body> 
</html> 

可能有更好的方法可用,但是這有效。

1

添加的OnClose()函數的模態調用的更新函數在你的主頁面(window.top.updateDropDownFunction())中刷新ajax調用的下拉菜單。

+0

任何機會的例子我對這個Ajax的東西很新 – Vicki

相關問題