在ColdFusion中显示和/或使用表单字段,如果您只是尝试用磅标记包装它们,那么这些字段是无效的

问题描述:

我在ajax中发布了一个名为trxdetails的对象到cfm页面。在ColdFusion中显示和/或使用表单字段,如果您只是尝试用磅标记包装它们,那么这些字段是无效的

// onAuthorize() is called when the buyer approves the payment 
      onAuthorize: function(data, actions) { 
       return actions.payment.get() 
         // PayPal Info 
         .then(function (paypalinfo) { 
          console.log(paypalinfo) 
         }) 
         // Execute Payment 
         .then(actions.payment.execute) 
         // Transaction Details 
         .then(function (trxdetails) { 
          console.log(trxdetails) 


          $.ajax({ 
           url: 'PayPalExpress/ajax_trxdetails.cfm', 
           type: 'post', 
           data: trxdetails, 
           success: function(json) { 
           console.log(json) 
           } 
          }); 

         }) 
         //.then(trxdetails => console.log(trxdetails)); 
      } 

当我cfdump形式,我得到这些字段名称:

ID,意向,州,CART,付款人[PAYMENT_METHOD],付款人[状态],付款人[PAYER_INFO] [EMAIL] PAYER [PAYER_INFO] [FIRST_NAME],PAYER [PAYER_INFO] [MIDDLE_NAME],PAYER [PAYER_INFO] [LAST_NAME],PAYER [PAYER_INFO] [PAYER_ID],PAYER [PAYER_INFO] [COUNTRY_CODE],PAYER [PAYER_INFO] [SHIPPING_ADDRESS] [RECIPIENT_NAME] ,PAYER [PAYER_INFO] [SHIPPING_ADDRESS] [LINE1],PAYER [PAYER_INFO] [SHIPPING_ADDRESS] [CITY],PAYER [PAYER_INFO] [SHIPPING_ADDRESS] [STATE],PAYER [PAYER_INFO] [SHIPPING_ADDRESS] [POSTAL_CODE],PAYER [PAYER_INFO] [ SHIPPING_ADDRESS] [COUNTRY_CODE],TRANSACTIONS [0] [AMOUNT] [TOTAL],TRANSACTIONS [0] [AMOUNT] [货币],TRANSACTIONS [0] [RELATED_RESOURCES] [0] [出售] [ID],TRANSACTIONS [0] [RELATED_RESOURCES] [0] [出售] [STATE],TRANSACTIONS [0] [RELATED_RESOURCES] [0 ] [出售] [PAYMENT_MODE],TRANSACTIONS [0] [RELATED_RESOURCES] [0] [出售] [PROTECTION_ELIGIBILITY],TRANSACTIONS [0] [RELATED_RESOURCES] [0] [出售] [PARENT_PAYMENT],TRANSACTIONS [0] [RELATED_RESOURCES] [ 0] [出售] [AMOUNT] [TOTAL],TRANSACTIONS [0] [RELATED_RESOURCES] [0] [出售] [AMOUNT] [货币],TRANSACTIONS [0] [RELATED_RESOURCES] [0] [出售] [TRANSACTION_FEE] [VALUE ],TRANSACTIONS [0] [RELATED_RESOURCES] [0] [出售] [TRANSACTION_FEE] [货币]

当我尝试诸如输出它们中的一个:

<cfoutput>#FORM.PAYER[PAYER_INFO][EMAIL]#</cfoutput> 

我收到此错误

元素PAYER未定义在class [Ljava.lang.String;类型的Java对象中。

+0

的关键。如果您简化表单字段名称,处理表单提交会更简单。 –

+0

我无法控制他们从贝宝回来的这些字段名称 – cfEngineers

由于您的表单变量名状结构,你不应该使用.符号访问的变量。当你使用。变量它会认为是

<cfoutput>#FORM.PAYER[PAYER_INFO][EMAIL]#</cfoutput> 

PAYER是Form结构中的关键。

相反,你可以得到数据如下

<cfoutput>#FORM["PAYER[PAYER_INFO][EMAIL]"]#</cfoutput> 

在这种情况下的ColdFusion将把PAYER [PAYER_INFO] [EMAIL]与表格结构

+0

非常感谢! – cfEngineers