【发布时间】:2018-08-02 17:28:17
【问题描述】:
首先,我不确定如何为这个问题命名,所以如果它含糊不清,我深表歉意。我正在尝试使用 ColdFusion 创建购物清单,但遇到了一些障碍。我希望在已创建的项目旁边出现一个删除按钮。我几乎所有东西都在工作,但是我对 ColdFusion 中的结构了解不够,无法理解我做错了什么。它类似于 React.js 中的组件吗?我遇到了一个问题,说变量“按钮”没有定义。我假设这是因为 structkeyExists 无法识别单个按钮。为什么这适用于表单而不适用于按钮?
这是我的代码:
<cfif structKeyExists(form, "submitButt")>
<cfquery datasource="ESC-ADD-TECH">
INSERT INTO Main(itemDesc) VALUES('#itemDesc#')
</cfquery>
</cfif>
<cfif structKeyExists(button, "delete_butt")>
<cfquery datasource="ESC-ADD-TECH">
INSERT INTO Main(itemDesc) VALUES('#itemDesc#')
</cfquery>
</cfif>
<cfquery datasource="ESC-ADD-TECH" name="items">
DELETE FROM Main
WHERE itemDesc = '#itemDesc#'
</cfquery>
<body>
<div id="myDIV" class="header">
<h2>My Shopping List</h2>
<form method="POST">
<input type="text" name="itemDesc" placeholder="Title...">
<input name="submitButt" type="submit" class="addBtn">
</form>
</div>
<cfoutput query="items">
<li>#items.itemDesc# <button class="delete" name="delete_butt">x</button></li>
</cfoutput>
</body>
有没有办法使用结构来做我想做的事情?我最好在javascript中创建按钮并尝试将结构创建为布尔语句并让javascript重写该值吗?有点只是在黑暗中拍摄,但我将不胜感激。
谢谢大家!
【问题讨论】:
-
我想知道我是否可以用表单标签包装按钮
-
您应该使用cfqueryparam 而不是将变量转储到cfquery 块中。这为您打开了 SQL 注入的大门,尤其是在这些变量没有作用域的情况下。 ColdFusion 有一个记录在案的scope precedence(搜索使用范围)
-
@Rain 1) 超级嫉妒你有一个非常棒的用户名。 Rain是有史以来最好的用户名。 2) 非常感谢您提供的信息。这只是为了测试而不是其他任何东西,但我很感激这个建议。我会把它作为我笔记的一部分。再次感谢!
-
同意
cfqueryparam。 “好代码”从不在查询中使用原始客户端值。
标签: coldfusion structure