Question

Voici le code que je utilise pour tester ceci:

<cfif structkeyexists(form, "submitted")>
    <cfdump var="#getPageContext().getRequest().getParameterMap()#">
</cfif>

<cfoutput>
<form method="post" action="#cgi.script_name#?firstname=tony">
    <input type="text" size="50" name="page[contents][][content]">
    <input type="text" size="50" name="page[contents][][content]">
    <input type="hidden" name="submitted" value="1">
    <input type="submit">
</form>
</cfoutput>

ce que nous faisons est d'utiliser pour récupérer un hachage des champs de formulaire et url lors d'une demande de poste getPageContext (). GetRequest (). GetParameterMap (). maintenant ce travail bien beau jusqu'à ce que vous définissez l'attribut enctype du formulaire « multipart / form-data » comme ceci:

<cfif structkeyexists(form, "submitted")>
    <cfdump var="#getPageContext().getRequest().getParameterMap()#">
</cfif>

<cfoutput>
<form method="post" action="#cgi.script_name#?firstname=tony" enctype="multipart/form-data‎">
    <input type="text" size="50" name="page[contents][][content]">
    <input type="text" size="50" name="page[contents][][content]">
    <input type="hidden" name="submitted" value="1">
    <input type="submit">
</form>
</cfoutput>

ce qui se passe à ce stade est que rien de la valeur de champ de formulaire sont retournés dans le hachage retourné de getPageContext (). GetRequest (). GetParameterMap ().

personne ne sait où et comment nous pouvons obtenir ces données ou une solution de contournement?

la raison pour laquelle nous utilisons getPageContext (). GetRequest (). GetParameterMap () est parce qu'il retourne un tableau comme la valeur de la variable au lieu d'une liste délimitée par des virgules comme en utilisant le champ de formulaire ne.

Mise à jour:. est sur ce correctif 8.0.1 avec 4 cumlative appliqué

Mise à jour: La raison pour laquelle vous ne pouvez pas utiliser listToArray est parce que vous avez deux champs nommés prenom et l'utilisateur d'entrer des valeurs pour les deux champs (1 et 2) . ce que FC est de retourner une clé dans la struct forme appelée prenom avec une liste delimeted par des virgules pour les deux valeurs (1,2). ce qui est excellent, mais dire utilisateur entre des valeurs pour le champ qui contiennent des virgules comme 1,2,3,4 pour le premier champ et 5,6,7,8 pour le deuxième champ. la valeur de la struct forme pour prenom sera 1,2,3,4,5,6,7,8 . ce n'est pas correct . maintenant depuis getParameterMap () retourne un tableau pour la valeur, Je voudrais avoir deux éléments comme ceci: [ "1,2,3,4", "5,6,7,8" ] .

Mise à jour:. J'ai essayé de voir ce que getHttpRequestData () le contenu retournerait par Leigh suggèrent. Il semble être un binaire vierge.

Mise à jour: Merci pour vous Leigh cela et comprendre sans utiliser entièrement getPageContext. la tour a utilisé la méthode getPartsArray () du champ de formulaire. Je ne savais même pas existé!

Gardez les idées à venir s'il vous plaît!

Était-ce utile?

La solution

(Ok .. prendre deux) Cela semble fonctionner avec CF9. Je ne suis pas en mesure de le tester avec CF8 au moment. Pouvez-vous donner un tourbillon?

<cfif structkeyexists(form, "submitted")>
   <!--- if this is a multipart request ...--->
   <cfset variables.parts = form.getPartsArray()>
   <cfif structKeyExists(variables, "parts")>
      <cfoutput>   
      <cfloop array="#variables.parts#" index="p">
         <cfif p.isParam()>
            isParam() = #p.isParam()# <br />
            getName() = #p.getName()# <br />
            stringValue() = #p.getStringValue()# <hr />
         </cfif>
      </cfloop>
      </cfoutput>
   </cfif>
</cfif>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top