2013-02-22 2 views
2

Je cherche à transmettre des valeurs de formulaire dans un cfform à un fichier PDF en utilisant cfpdfform. Voici ma petite page de test qui parcourt 50 enregistrements pour tirer le prénom et le nom. J'essaye juste de tirer ceux-ci dans les champs de pdf. Actuellement, il met dans tous les 50 prénoms dans le champ prénom et tous les noms de famille dans le champ nom de famille du pdf. Je ne suis pas marié au bouton Soumettre, mais quelles sont les meilleures options?ColdFusion - Utilisation d'un cfloop avec plusieurs champs et plusieurs boutons de soumission

Dans ma dernière itération de cela, je vais tirer environ 100 champs.

--Form--

<cfform name="autopdf" method="POST" action="automated_pdf_submit.cfm" enctype="multipart/form-data"> 
     <h1>Select a state to insert into a PDF form</h1> 
     <div class="center"> 
      <select name="pdfselect" id="pdfselect"> 
       <option value="" selected>--Select State--</option>     
       <option value="FROI_NY.pdf">New York</option> 
       <option value="FROI_PA.pdf">Pennsylvania</option> 
      </select> 
      <cfinput type="hidden" name="statevalidate" onValidate="yourFunction" 
        message="YOU MUST SELECT A STATE TO CONTINUE!"> 
     </div> 
     <table align="center" style="width:400px"> 
      <tr> 
       <th></th> 
       <th>First Name</th> 
       <th>Last Name</th> 
       <th>Export to PDF</th> 
      </tr> 
      <cfoutput> 
      <cfloop query="#qryPersons#" startrow="1" endrow="50" > 
       <tr class="#IIf(CurrentRow Mod 2, DE('rowOdd'), DE('rowEven'))#" onmouseover="this.className='rowHighlight'" 
        <cfif CurrentRow Mod 2>onmouseout="this.className='rowOdd'" 
        <cfelse>onmouseout="this.className='rowEven'"</cfif>> 
         <td>#qryPersons.CurrentRow#</td> 
         <td>#qryPersons.LastName#</td> 
         <input type="hidden" name="FirstName" value="#qryPersons.LastName#"> 
         <td>#qryPersons.FirstName#</td> 
         <input type="hidden" name="LastName" value="#qryPersons.FirstName#"> 
         <td style="width:50px"><input type="submit" value="Create PDF"</td> 
       </tr> 
      </cfloop> 
      </cfoutput> 
     </table> 
</cfform> 

--Action--

<cfpdfform action="populate" source="forms\#form.pdfselect#"> 
    <cfpdfformparam name="FirstName" value="#form.FirstName#"> 
    <cfpdfformparam name="LastName" value="#form.LastName#"> 
</cfpdfform> 
+0

Quelle est la question ici? Il semble que cela fonctionne à partir de votre question. – Busches

+0

@Busches Il tire tous les premiers noms dans le formulaire. Voici une image de la page et le pdf: http://imgur.com/KZ4HEiE,VIjlgDz – Macness

+0

ah, alors la réponse de Matt ci-dessous résoudra votre problème. – Busches

Répondre

5

Vos champs de formulaire sont tous nommés FirstName et LastName vous devez faire les

uniques
<cfloop query="#qryPersons#" startrow="1" endrow="50" > 
<tr class="#IIf(CurrentRow Mod 2, DE('rowOdd'), DE('rowEven'))#" onmouseover="this.className='rowHighlight'" 
    <cfif CurrentRow Mod 2>onmouseout="this.className='rowOdd'" 
    <cfelse>onmouseout="this.className='rowEven'"</cfif>> 
    <td>#qryPersons.CurrentRow#</td> 
    <td>#qryPersons.LastName#</td> 
    <input type="hidden" name="FirstName#qryPersons.currentrow#" value="#qryPersons.LastName#"> 
    <td>#qryPersons.FirstName#</td> 
    <input type="hidden" name="LastName#qryPersons.currentrow#" value="#qryPersons.FirstName#"> 
    <td style="width:50px"><input type="submit" value="Create PDF"</td> 
    </tr> 
</cfloop> 

Je n'ai jamais utilisé cfpdfform auparavant, mais cette syntaxe devrait fonctionner. Vous devrez peut-être nommer dynamiquement l'attribut name ci-dessous et

<cfpdfform action="populate" source="forms\#form.pdfselect#"> 
<cfloop from="1" to="50" index="i"> 
    <cfpdfformparam name="FirstName" value="#form['FirstName'&i]#"> 
    <cfpdfformparam name="LastName" value="#form['LastName'&i]#"> 
</cfloop> 
</cfpdfform> 
+0

Je pense qu'il ne veut que passer un nom à la fois, donc il devrait vraiment déplacer le formulaire autour de chacun, donc il aurait une cinquantaine de tags. – Busches

+0

@matt Cela ne créerait-il pas plusieurs fichiers PDF? Je veux seulement passer celui sur lequel je clique. Voir ces deux images pour référence: http://imgur.com/KZ4HEiE,VIjlgDz – Macness

+0

alors vous avez juste besoin de déplacer la boucle en dehors de votre formulaire, de sorte que vous avez 50 champs de formulaire sur votre page –

Questions connexes