如何将一组电子邮件发布为cfhttpparam?

时间:2015-01-26 22:13:05

标签: arrays post parameters coldfusion

所以我试图使用Coldfusion和一系列电子邮件发布到API。

快速查看API架构

{
 "emails":["foo@bar.com", "bar@foo.com"],
 "orgId":1,
 "subject":"foobar",
 "body":"foobar",
 "sender":"foobar@com"
}

现在这是我的coldfusion脚本

<cffunction name="inviteusers" access="public" returntype="any">
    <cfset var data = "" />
    <cfhttp url="urlserver#UserInvite" method="post" username="#username#" password="#urlpass#" result="data">
        <cfhttpparam name="emails"  this is array or emails>
        <cfhttpparam name="orgID" type="formType" value="1">
        <cfhttpparam name="body" type="formType" value="this is the body">
        <cfhttpparam name="sender" type="formType" value="hmm@yahoo.com">
    </cfhttp>
</cffunction>

电子邮件是我被困的地方..我不知道如何解决这个问题..

谢谢你们!

1 个答案:

答案 0 :(得分:0)

Allrighty,

这是我回答这个问题的方法。由于我正在开发一个MVC框架,在我拥有该表单的视图中,我已经在控制器中为该函数创建了一个JQuery post函数。

我有一个html输入,用户可以输入以逗号分隔的任意数量的电子邮件。我有一个javascript函数,它接受输入的值并将它们分成“逗号”。然后将它们添加到数组对象。

由于API的结构如下:

{
 "emails":["foo@bar.com", "bar@foo.com"],
 "orgId":1,
 "subject":"foobar",
 "body":"foobar",
 "sender":"foobar@com"
}

在我的$.post()函数中,我有一个用作数据的对象:

var myData = {
                "emails" : myEmails, //This myEmails is an array['fooBar@.com', 'barfoo@.com'] of emails from the single email input.
                "orgId" : 1,
                "subject" : $('#vgridSubject').val(),
                "body" : $('#vgridText').val(),
                "sender" : "foobar@ls.com"
            }

现在在我的控制器中,这是我处理电子邮件数组的方式

<cfscript>
  sendInvites = postUserInvite(emails = FORM['EMAILS[]'], orgID = FORM.orgID, subject = FORM.subject, body = FORM.body, sender = FORM.sender)
</cfscript>

记下FORM['EMAILS[]'],因为这可以让我从表单范围访问值。

链接到表单数组Working with Form Arrays in ColdFusion?