2010-06-21 34 views
0

我需要關於ColdFusion的幫助,我想要使用CF9 ajax庫,我的頭文件中有<cfajaximport tags="cfform">,並且包含一個使用<cfdiv bind="url:domainchecker.cfm">的表單,但是用「Loading」ajax替換整個表單輪子然後顯示結果。Coldfusion Ajax - 表單提交

我需要的是提交表單,但單獨的結果區域是更新的內容(顯然會有ajax「loading」)。我不希望整個區域發生變化(這是否合理?)

回答

0

我個人會使用jQuery over CF Ajax函數來獲得超越簡單綁定而沒有太多附加JavaScript的東西。

來自CF的provided JavaScript functions太有限了。

既然你已經使用jQuery,這應該很容易。查看jQuery的Ajax +操作函數。

+0

亨利嗨,感謝您的快速回復。我從來沒有真正在Coldfusion中使用ajax(從來不需要),所以你可以給我一個例子嗎?或者只指出一個好方向。 給我一個你的意思與jQuery的例子(我在網站上使用jQuery) 非常感謝在此先感謝 – jtanner 2010-06-21 05:53:25

1

於是,經過深刻反省,我設法這樣的:

<head> 
... 
<cfajaximport /> 
... 
    <script> 
     function handleResponse(s) { 
      if(s == "AVAILABLE") { 
       //rewrite span 
       var domainspan = document.getElementById('DomainStatus'); 
       var newcontent = "Available To Register :)"; 
       domainspan.innerHTML = newcontent; 
       var loadingspan = document.getElementById('frmGO'); 
       var newcontent = "<input name='' value='GO!' class='search_domain_go' type='submit' />"; 
       loadingspan.innerHTML = newcontent; 
      } else { 
       //rewrite span 
       var domainspan = document.getElementById('DomainStatus'); 
       var newcontent = "Unavailable To Register :("; 
       domainspan.innerHTML = newcontent; 
       var loadingspan = document.getElementById('frmGO'); 
       var newcontent = "<input name='' value='GO!' class='search_domain_go' type='submit' />"; 
       loadingspan.innerHTML = newcontent; 
      } 
     } 

     function CheckDomain() { 
      var loadingspan = document.getElementById('frmGO'); 
      var newcontent = "<input name='' type='image' class='search_domain_go' src='images/ajax-loader.gif' alt='' />"; 
      loadingspan.innerHTML = newcontent; 
      ColdFusion.Ajax.submitForm('frmDomainCheck','checkdomain.cfm',handleResponse); 
     } 
    </script> 
... 
</head> 

<body> 
... 
     <div class="search_domain"> 
      <div class="search_domain_form"> 
      Search Your Domain Here<br /> 
       <form method="post" action="" onSubmit="CheckDomain();return false;" id="frmDomainCheck"> 
        <input class="search_domain" name="frmURL" id="frmURL" value="Please enter your domain name here..." onfocus="if(this.value == 'Please enter your domain name here...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Please enter your domain name here...';}" type="text" /> 
        <span id="frmGO"><input name="" value="GO!" class="search_domain_go" type="submit" /></span> 
       <form> 
      </div><!-- /# end search form --> 
      <div class="domain_features"> 
       <ul> 
        <li><span id="DomainStatus">Type in the domain and click 'GO' to check its availability.</span></li> 
       </ul> 
      </div> 
     </div> 
... 
</body> 
0

保持簡單?

domainSearch.cfm

<head> 
</head> 

<body> 
<h2 style="color:Blue">Domain search</h2> 
<form name="domainSearch"> 
www.<input class="search_domain" name="searchString" id="frmURL" value="Please enter your domain" onfocus="if(this.value == 'Please enter your domain') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Please enter your domain';}" type="text" />.com 
<font color="#FF0000"><strong>[Search]</strong></font> 
</form> 
<p>Enter any domain.com, (hint: try "free")</p> 
<cfdiv id="resultsDiv" bind="url:searchProcessor.cfm?searchString={searchString}"> 
</body> 
</html> 

searchProcessor.cfm

<cfif IsDefined("URL.searchString")> 

    <cfif URL.searchString eq "Please enter your domain"> 
     <cfoutput></cfoutput> 
    <cfelseif URL.searchString eq "free"> 
     <cfoutput>Great, #URL.searchString# is available, price $400</cfoutput> 
    <cfelse>  
     <cfoutput>Sorry, #URL.searchString# is not available, try again.</cfoutput> 
    </cfif> 
</cfif>