2010-06-21 35 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>