我有一个单独的表单,可以向人们发送电子邮件.有两个按钮可以执行此操作:新建和回复.
readonly到主题字段.但是,如果有人点击"回复"然后改变主意实际发送新电子邮件,则表示我已丢失表单的所有默认值和属性.我无法手动输入这些值,因为值是动态来自数据库的.
我无法理解如何在页面上切换新建和回复.我猜我可以在有人点击New时重新加载页面,但这是唯一的方法吗?
编辑:
我应该提到我还需要重置隐藏字段的值.当我说"重置"时,我的意思是回到原来的价值......不清楚value属性.
我不明白为什么用户可以拥有多个安全角色,但只能在一个业务部门中?
我们让人们在多个业务部门工作,并根据他们所代表的业务部门佩戴不同的"帽子".例如,市场营销高级经理可以辞职,在此期间,财务部的财务总监可以接受他的工作直到找到新人.FD被指定为财务业务部门,但他现在也从事市场营销工作.
如何在Dynamics CRM中实现这一目标?
我的应用程序托管在一个服务于许多客户的中央服务器上.现在,它需要与驻留在客户所在位置的数据库服务器交叉引用信息.
我想存储客户服务器的详细信息以及他们的帐户详细信息(例如dbname,host,port等).
但是,根据谁登录到应用程序,我需要将其数据连接详细信息提供给<cfquery>函数以执行查找.像这样的东西:
<cfquery name="rsOrders" datasource="{dynamically provided connection string}">
SELECT *
FROM
CompanysDBTable
</cfquery>
Run Code Online (Sandbox Code Playgroud)
我知道有一个管理员API以编程方式创建数据源,但是使用它会意味着我的系统中有一个额外的过程,如果客户需要更新数据源详细信息会发生什么?
那么有没有办法像上面那样在飞行中做到这一点?也就是说,在<cfquery>标签内提供数据连接字符串.
或者有更好的方法完成这项工作吗?
我正在尝试将用户上传的任何图像转换为具有白色背景的jpg格式.但是,我注意到当用户上传包含透明度的PNG图像时,ColdFusion会破坏整个图像.它几乎看起来像数字腐败正在发生.
因此,用户首先提供图像所在位置的URL,并cfhttp用于读取它:
<cfhttp url="http://pathtoimage/image.png" method="get" useragent="#CGI.http_user_agent#" getasbinary="yes" result="PageResult">
<cfimage name="UserImg" source="#PageResult.FileContent#" />
Run Code Online (Sandbox Code Playgroud)
所以现在UserImg是用户想要上传的图像.接下来我们按照惯例设置抗锯齿,我也希望背景为白色,因为图像可以具有透明背景:
<cfset ImageSetAntialiasing(UserImg, "on")>
<cfset ImageSetBackgroundColor(UserImg, "white")>
Run Code Online (Sandbox Code Playgroud)
最后一步是将其作为jpg文件写入服务器:
<cfimage source="#UserImg#" action="write" destination="pathtoimages/userimage.jpg" overwrite="yes" format="jpg" />
Run Code Online (Sandbox Code Playgroud)
问题是具有透明度的PNG图像完全毁了.什么应该有一个白色的背景,并成为一个明确的jpg图像最终所有块状与黑色背景.这是一个例子:
我该如何解决这个问题?
如何检查嵌套数组是否为空?当没有数据时,数组看起来像这样:
const data = [ [ ] ]
Run Code Online (Sandbox Code Playgroud)
如果它有数据,它看起来像这样:
const data = [
[{"Product": 7 }]
]
Run Code Online (Sandbox Code Playgroud)
要检查它是否为空,我正在执行以下操作,但不起作用:
if (!Array.isArray(data[0][0]) || data[0][0].length === 0) {
return "Data is empty"
}
Run Code Online (Sandbox Code Playgroud)
我不明白的是为什么!Array.isArray(data[0][0])返回true,这意味着嵌套数组不是一个数组(这很奇怪,因为它是一个数组,只是空的)。根据文档,Array.isArray([])返回 true 那么如何!Array.isArray(data[0][0]返回 true?
该data[0][0].length部分抛出一个错误,指出"TypeError: "data[0][0] is undefined""。为什么会这样呢?
这就引出了一个问题:如何检查嵌套数组是否为空?
我刚刚开始使用ColdFusion OOP,我想制作一个DIV,根据用户所在的页面以及他们拥有的登录权限(角色)显示不同的用户链接.基本上是'上下文'菜单.
我应该将此工具栏/导航DIV放在.cfm或.cfc文件中吗?
重申一下; cfm或cfc文件需要知道用户所在的页面,并且还要检查他们所拥有的角色.根据这两条信息,它将显示一组指向用户的链接.角色信息来自数据库并存储在SESSION变量中,并找出它们所在的页面,我猜它可以使用#GetFileFromPath(GetBaseTemplatePath())#.
我的第一个想法是拥有一个普通的.cfm文件,将所有的表示和逻辑放在该文件中(HTML和许多<cfif>语句),以确保在DIV中显示正确的信息,然后用于<cfinclude>在页面上显示它.然后我开始考虑也许我应该制作一个自定义标签并要求调用页面传递用户的凭证和#GetFileFromPath(GetBaseTemplatePath())#as参数,然后让该自定义标签返回所有的表示数据.
最后我想CFC也可以做到这一点,但我打破了在CFC中提供表现和逻辑数据的"规则".
有关最佳实践的任何建议,以实现我想要做的事情?它最终将服务于数千名客户,因此我需要确保我的解决方案易于扩展.
我<cfinclude>用来在母版页中包含各种页面.在我的母版页中,所有正文内容都包含在<cfoutput>标签中.但是我注意到,经过测试,包含的.cfm页面根本看不到<cfoutput>标签,因此不显示动态数据.
<body>
<cfoutput>
<cfinclude template="page1.cfm" />
<cfinclude template="page2.cfm" />
<cfinclude template="page3.cfm" />
</cfoutput>
</body>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,包含动态数据的包含模板将无法正确显示.要解决这个问题,我必须<cfoutput>在每个CFM文件中添加标签.为什么他们不能使用<cfoutput>身体内已有的标签?
为了使用图像作为表单的提交按钮,我遇到了两种方法,并且想知道哪一种是正确/最佳实践。
版本1:
<button type="submit">
<img src="mybutton.jpg" alt="Submit" />
</button>
Run Code Online (Sandbox Code Playgroud)
版本2:
<input type="image" src="mybutton.jpg" border="0" alt="Submit" />
Run Code Online (Sandbox Code Playgroud)
我个人认为第一个版本更好,因为它具有语义意义并且具有“提交”类型。在第二个版本中,它说输入是“图像”类型,这对我作为一个人来说没有多大意义。
我应该选择哪一个?
我需要更新位于的OWASP AntiSamy jar文件 ColdFusion11\cfusion\lib
当前存在的文件antisamy-1.4.4.jar但是我想将其更新到antisamy-1.5.3.jar我从OWASP下载并放在该cfusion\lib文件夹中的最新版本.
有谁知道我怎么能告诉ColdFusion使用最新版本的文件?是否在某个配置文件中的文件路径?
在CF管理员中,我可以在"设置摘要"下看到旧文件和新文件,但我如何知道它用于为该GetSafeHTML功能供电?
我个人无法看到这样做的方法,但我希望有一个聪明的黑客能够让它发挥作用.
我们必须定期向客户发送电子邮件,许多人的电子邮件过期并给我们邮件传递失败.为了保持数据库准确和干净,我想在电子邮件无法发送给他们时从数据库中删除他们的记录.
所以目前它有点像这样:
<cfloop query="rsCustomers">
<cftry>
<cfmail to="rsCustomers.Email" from="us@ourcompany.com" failto="fails@ourcompany.com" subject="Whatever">
[email text here]
</cfmail>
<cfcatch type="any">
<!--- just to skip this record when it fails to send --->
</cfcatch>
</cftry>
</cfloop>
Run Code Online (Sandbox Code Playgroud)
我可以在catch区域内运行查询,以便在记录中出现错误时删除记录(例如,格式错误的电子邮件地址).但是当邮件无法送达时没有任何反应.我收到了收件箱的失败通知,但这些通知可能有数百个,因此很难手动完成并从数据库中删除.
无论如何"抓住"未能发送电子邮件然后将它们反馈给查询以从数据库中删除?
coldfusion ×6
arrays ×1
coldfusion-8 ×1
coldfusion-9 ×1
dynamics-crm ×1
email ×1
html ×1
image ×1
javascript ×1
jquery ×1