2017-06-30 2 views
0

Je poste dans ajax un objet appelé trxdetails vers une page cfm.Afficher et/ou utiliser des champs de formulaire dans ColdFusion qui ne sont pas valides si vous essayez de les entourer de signes dièse

// 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)); 
      } 

Quand je cfdump forme, je reçois ces noms de champs:

ID, INTENTIONS, ETAT, CART, PAYER [PAYMENT_METHOD], PAYER [STATUS], PAYER [PAYER_INFO] [EMAIL], PAYEUR [PAYER_INFO] [FIRST_NAME], PAYEUR [PAYER_INFO] [MIDDLE_NAME], PAYEUR [PAYER_INFO] [LAST_NAME], PAYEUR [PAYER_INFO] [PAYER_ID], PAYEUR [PAYER_INFO] [COUNTRY_CODE], PAYEUR [PAYER_INFO] [SHIPPING_ADDRESS] [RECIPIENT_NAME] PAYEUR [PAYER_INFO] [SHIPPING_ADDRESS] [LINE1], PAYEUR [PAYER_INFO] [SHIPPING_ADDRESS] [VILLE], PAYEUR [PAYER_INFO] [SHIPPING_ADDRESS] [ÉTAT], PAYEUR [PAYER_INFO] [SHIPPING_ADDRESS] [CODE POSTAL], PAYEUR [PAYER_INFO] [ SHIPPING_ADDRESS] [COUNTRY_CODE], TRANSACTIONS [0] [MONTANT] [TOTAL], TRANSACTIONS [0] [AMOUNT] [CURRENCY], TRANSACTIONS [0] [RELATED_RESOURCES] [0] [SOLDES] [ID], TRANSACTIONS [0] [RELATED_RESOURCES] [0] [SOLDES] [STATE], TRANSACTIONS [0] [RELATED_RESOURCES] [0 ] [SALE] [PAYMENT_MODE], TRANSACTIONS [0] [RELATED_RESOURCES] [0] [SALE] [PROTECTION_ELIGIBILITY], TRANSACTIONS [0] [RELATED_RESOURCES] [0] [SALE] [PARENT_PAYMENT], TRANSACTIONS [0] [RELATED_RESOURCES] [ 0] [SALE] [MONTANT] [TOTAL], TRANSACTIONS [0] [RELATED_RESOURCES] [0] [SALE] [MONTANT] [CURRENCY], TRANSACTIONS [0] [RELATED_RESOURCES] [0] [SALE] [TRANSACTION_FEE] [VALUE ], OPÉRATIONS [0] [RELATED_RESOURCES] [0] [VENTE] [TRANSACTION_FEE] [DEVISES]

Quand j'essaie de sortie un d'entre eux tels que:

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

Je reçois cette erreur

L'élément PAYER n'est pas défini dans un objet Java de type [Ljava.lang.String ;.

+0

Si vous simplifiez vos noms de champs de formulaire , il sera plus simple de traiter la soumission du formulaire. –

+0

Je n'ai pas de contrôle sur ces noms de champs qu'ils reviennent de paypal – cfEngineers

Répondre

2

Depuis votre formulaire les noms de variables sont comme des structures que vous ne devriez pas accéder aux variables en utilisant la notation .. Lorsque vous utilisez le. variable qu'il considérera comme

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

PAYER est une clé dans la structure de formulaire.

à la place, vous pouvez obtenir les données ci-dessous

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

Dans ce coldfusion cas traitera PAYER [PAYER_INFO] [EMAIL] comme une clé dans la structure du formulaire

+0

Super merci! – cfEngineers