Arrays 已发送表单变量内的访问数组
我正在与PayPal合作,我需要这段代码来阅读API的付款后回复:Arrays 已发送表单变量内的访问数组,arrays,post,coldfusion,Arrays,Post,Coldfusion,我正在与PayPal合作,我需要这段代码来阅读API的付款后回复: <cfif StructKeyExists(FORM.TRANSACTION[0],"ID_FOR_SENDER_TXN")> <cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN /> </cfif> 或 更新2 曾与: <cfif structKeyExists(FORM, "TRANSACTION[0].ID_FOR_
<cfif StructKeyExists(FORM.TRANSACTION[0],"ID_FOR_SENDER_TXN")>
<cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN />
</cfif>
或
更新2
曾与:
<cfif structKeyExists(FORM, "TRANSACTION[0].ID_FOR_SENDER_TXN")>
</cfif>
谢谢大家! 如果表单字段名为
事务[0].ID\u FOR\u SENDER\u TXN
(这是调试循环所指示的),则应将其寻址为:
form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN']
澄清:
使用此符号访问变量时:
<cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN />
ColdFusion需要以下数据结构:
它在名为transaction的表单中查找一个键,并尝试从中获取第0个索引(旁注:无论如何,这在CF中不起作用,数组以索引1开头),并且作为数组中的第一项,它期望一个结构具有一个名为ID_的键,用于_SENDER_TXN
但是,PayPal发送给您的实际上是使用以下格式:
这解释了错误消息:“Element TRANSACTION在class[Ljava.lang.String;类型的Java对象中未定义”正确,但是如果coldfusion仅读取索引1+,如何访问paypal响应传递的索引为0的变量?使用“数组表示法”访问结构的对象;并重新阅读我的答案。它不是数组,它是一个看起来像数组的表单字段名……因此,structKeyExists的正确语法是
structKeyExists(表单,“事务[0].ID\u代表发送方\u TXN”)
。注意:由于字段名ie[]
和
中的特殊字符,您不能使用此处定义的ISD。
form['TRANSACTION[0].ID_FOR_SENDER_TXN']
<cfif structKeyExists(FORM, "TRANSACTION[0].ID_FOR_SENDER_TXN")>
</cfif>
form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN']
<cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN />