gpt4 book ai didi

coldfusion - 我可以在 JavaScript 中使用 ColdFusion 标签吗?

转载 作者:行者123 更新时间:2023-12-02 06:31:18 28 4
gpt4 key购买 nike

我可以在 JavaScript 中使用 ColdFusion 标签吗?例如:

 <script language="javascript" type="text/javascript">
function validateUser() {
var userName = document.getElementById("username");

<CFQUERY DATASOURCE="mydatasourcename" NAME="getUser">
select USER_ID,COUNT(*) from user u
where u.firstname=userName;
</CFQUERY>
<cfif getUser.recordCount EQ 0>
<!--- Show eroor message --->
<cfelse>
<!--- Assign userId to hidden field --->
document.getElementById("userid").value=#USER_ID#
</cfif>
}
</script>

<input type='textbox' name='username' id='username' onblur=validateUser()/>
<input type='hidden' name='userid' id='userid'/>

当最终用户输入他们的用户名时,我想检查数据库是否存在该用户名。如果它存在,我必须将用户 ID 保留在隐藏字段中,否则会引发错误。

我这样做正确吗?如果错了,你能建议正确的方法吗?

最佳答案

长版:http://blog.adamcameron.me/2012/10/the-coldfusion-requestresponse-process.html

简短版本:不,你做的不对。

中型 StackOverflow 友好版本:CFML 代码在请求的服务器端运行; JavaScript 在客户端浏览器上运行。需要明确的是:ColdFusion 服务器根本不会直接与浏览器通信:两者之间有一个 Web 服务器。客户端浏览器请求一个文件,Web 服务器被配置为将 .cfm 请求传递给 ColdFusion 服务器,它运行其代码,将结果字符串(例如:HTML 网页)返回给 Web 服务器,然后再返回给浏览器。该 HTML 可能包含浏览器随后将执行的 JavaScript(内联或作为外部请求)。

希望您能从中看到服务器端代码和客户端代码之间没有直接交互。

不过,您有两个工具可以让两者异步通信。首先:CFML 代码写出文本,但该文本可以是浏览器在最终接收到它时运行的 JS。像这样的东西:

<cfset msg ="G'day world">
<script>alert("<cfoutput>#msg#</cfoutput>");</script>

CFML 服务器处理完后,发送回浏览器的内容是:

<script>alert("G'day world");</script>

通过这种方式,如果服务器端代码“写出”数据作为其响应的一部分,则服务器端代码数据可以在客户端进程中使用。上面的示例非常简单,不是解决此问题的“良好实践”方式,但它演示了该技术。

如果您需要在客户端使用 JS 代码与服务器进行通信,您唯一(真正)的办法是向服务器发出 AJAX 请求,以将客户端信息传递给服务器以进行进一步的服务器端处理,并且让服务器响应一些东西。解释如何最好地做到这一点超出了您的问题范围,但是有大量信息可以做到这一点。

CFML 提供了一些“向导”来为您编写 HTML 和 JS,但总的来说这是一种不好的方法,所以我不推荐它。但是,我将向您指出一个项目,它为内置的 CFML 魔法提供 HTML/JS/CSS 解决方案:https://github.com/cfjedimaster/ColdFusion-UI-the-Right-Way

回到简短的回答:不,你不能出于很好的理由去做你打算做的事,但如果你修改你的方法,你可以达到你想要的目的。

您需要查看的是通过 AJAX 将表单字段传回服务器(jQuery 使这变得非常简单),然后运行您的 <cfquery>单独请求中的代码。

如果您从一开始就阅读了我提到的那篇博客文章(披露:我写了它,但我是专门为这种情况写的),那么您就会明白为什么。

如果您在处理部分解决方案时遇到困难:提出另一个问题,更侧重于您遇到的问题。

关于coldfusion - 我可以在 JavaScript 中使用 ColdFusion 标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35417317/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com