我需要關於ColdFusion的幫助,我想要使用CF9 ajax庫,我的頭文件中有<cfajaximport tags="cfform">
,並且包含一個使用<cfdiv bind="url:domainchecker.cfm">
的表單,但是用「Loading」ajax替換整個表單輪子然後顯示結果。Coldfusion Ajax - 表單提交
我需要的是提交表單,但單獨的結果區域是更新的內容(顯然會有ajax「loading」)。我不希望整個區域發生變化(這是否合理?)
我需要關於ColdFusion的幫助,我想要使用CF9 ajax庫,我的頭文件中有<cfajaximport tags="cfform">
,並且包含一個使用<cfdiv bind="url:domainchecker.cfm">
的表單,但是用「Loading」ajax替換整個表單輪子然後顯示結果。Coldfusion Ajax - 表單提交
我需要的是提交表單,但單獨的結果區域是更新的內容(顯然會有ajax「loading」)。我不希望整個區域發生變化(這是否合理?)
我個人會使用jQuery over CF Ajax函數來獲得超越簡單綁定而沒有太多附加JavaScript的東西。
來自CF的provided JavaScript functions太有限了。
既然你已經使用jQuery,這應該很容易。查看jQuery的Ajax +操作函數。
於是,經過深刻反省,我設法這樣的:
<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>
保持簡單?
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>
亨利嗨,感謝您的快速回復。我從來沒有真正在Coldfusion中使用ajax(從來不需要),所以你可以給我一個例子嗎?或者只指出一個好方向。 給我一個你的意思與jQuery的例子(我在網站上使用jQuery) 非常感謝在此先感謝 – jtanner 2010-06-21 05:53:25