【发布时间】:2012-01-03 16:43:15
【问题描述】:
创建一个生日俱乐部。
数据库由客户及其宠物组成。一些客户可能只有 1 只宠物,而其他客户可能有 10 只。Clients 存储在一个表中,Pets 存储在另一个表中,client_id 相应地作为主键和外键。
该网页将显示数百名客户和他们的宠物,但我们将专注于一个名为 John Doe 的虚拟记录。现在,假设 John Doe 有一只狗、一匹马和一只猫。狗和猫在一月过生日,马在三月过生日。当我查看网页时,我可以看到 John 的猫和狗,输入框被选中,但马没有(因为他的生日是三月而不是一月)。我单击“继续”按钮,将生成一封电子邮件给 John,祝他的狗和猫生日快乐,但我不想包括马。他将在三月份收到另一封关于马的电子邮件,但不会收到猫的电子邮件。到目前为止和我在一起?
现在,我的表单,我有这样的设置:
<cfset ClientPet = ArrayNew(2)>
<cfoutput>
<cfset x = 1>
<cfloop index="p" list="#select_pet#" delimiters=",">
Client ID: #listfirst(p,'|')#<br />
Pet ID: #listlast(p,'|')#
<cfset ArrayAppend(ClientPet[x][1], '#listfirst(p,'|')#')>
<cfset ArrayAppend(ClientPet[x][2], '#listlast(p,'|')#')>
</cfloop>
</cfoutput>
在操作页面上,我只想向客户发送一封电子邮件并动态列出他们的宠物,但只列出从上一页中选择的宠物,所以我这样做:
<cfset ClientPet = ArrayNew(2)>
<cfoutput>
<cfset x = 1>
<cfloop index="p" list="#select_pet#" delimiters=",">
Client ID: #listfirst(p,'|')#<br />
Pet ID: #listlast(p,'|')#
<cfset ArrayAppend(ClientPet[x][1], '#listfirst(p,'|')#')>
<cfset ArrayAppend(ClientPet[x][2], '#listlast(p,'|')#')>
</cfloop>
</cfoutput>
我不知道我是否应该使用数组或结构,无论我使用哪种方式,我都需要能够遍历所有的 client_id,然后是所有的宠物,然后是下一个 client_id 和他们所有的宠物, 等等。我在上面的正确道路上吗?如果是这样,我应该能够遍历我的二维数组或结构,然后相应地系统地列出宠物,对吧?
【问题讨论】:
-
目标是创建一封电子邮件给所有希望本月宠物生日快乐的客户吗?你为什么要显示复选框?这是计划任务吗?
-
@NathanStanford - 如果她不希望客户收到电子邮件通知(例如,宠物通过了,她只是尚未将宠物标记为已故),我的客户想要取消选中复选框。
-
@NathanStanford - 你是来自 EasyCFM 的 Nathan 吗?
标签: arrays coldfusion structure