2010-09-10 24 views
0

L'utilisateur saisira son numéro d'identification, puis les comptes liés à ce numéro d'identification seront présentés (boutons radio). Ils pourraient avoir 1 ou même 10 comptes rendus (boutons radio). Je dois les avoir mettre à jour leur compte à un Y, N. L'identifiant de compte est ce qui compose les groupes de radio. Maintenant, j'ai besoin de savoir qui faire la boucle à travers ces boutons radio pour voir ce qu'ils ont sélectionné.Groupe de boutons radio dynamique dans Coldfusion

<cfif isDefined('FORM.bnt2')> 
    <cfloop index="i" list="#form.fieldnames#"> 
     <cfquery name="accept" datasource="#request.dsn#"> 
      UPDATE opt SET 
      f14 = '#evaluate(i)#' 
      WHERE f4 = '#FORM.id#' 
     </cfquery> 
    </cfloop> 
</cfif>                

<cfform name="frm2" id="form2" method="post" action=""> 
    <cfinput type="radio" name="#f5#" value="y"> 
    <cfinput type="radio" name="#f5#" value="n"> 
    <cfinput type="hidden" name="id" value="#f4#" /> 
    <cfinput name="bnt2" type="image" class="btn" src="images/accept.gif" value="Submit"/> 
+0

Nom du formulaire? ou nom de champ? Si vous vider la portée du formulaire, vous devriez être capable de voir toutes les choses là-dedans, alors vous pouvez faire une boucle dans la structure ou la liste des noms de champs pour faire ce dont vous avez besoin. – Henry

+0

Voici ce que j'essaie de faire ... UPDATE opt SET F14 = '#evaluate (i) #' OÙ f4 = '# FORM.ssn #'

+1

Pour l'amour de tout ce qui est saint .. s'il vous plaît ne pas utiliser # form.SSN #;) Il y a beaucoup d'outils disponible pour créer des identifiants uniques utilisables dans des formulaires généraux/non sécurisés. – Leigh

Répondre

1

Ne pas utiliser évaluer!

Est-ce que utilise cfqueryparam!

Et de corriger ces noms de variables, f5, btn2 etc ne sont pas de bons noms.


Quoi qu'il en soit, je ne suis pas tout à fait certain de ce que vous faites, mais voici un extrait de code pour vous:

<cfoutput> 
<cfloop index="CurField" list="#Form.FieldNames#"> 
    <br/>#CurField#=#XmlFormat(Form[CurField])# 
</cfloop> 
</cfoutput> 

Cela devrait vous donner ce que vous devez faire fonctionner les choses.

Notez que le XmlFormat est pour l'affichage - généralement pas fait dans les requêtes (stocker des données dans la base de données), mais plutôt quand il est affiché à un navigateur. (Peut également utiliser HtmlEditFormat si vous préférez.)

+0

Je dois obtenir la valeur du bouton radio, si l'utilisateur a sélectionné Y ou N. Les noms de champs vont être générés dynamiquement à partir des identifiants de la base de données pour former des groupes radio. Lorsque j'essaie de pour trouver la valeur du bouton radio, je vais seulement obtenir la valeur du bouton submit. –

+1

Si aucune option n'est cliquée, rien ne sera dans le formulaire struct. Seulement si l'une des options est sélectionnée, elle apparaîtra. – jarofclay

+0

Les options sont sélectionnées, je ne connais tout simplement pas le nom du champ radio pour mettre à jour la base car le nom du champ sera différent à chaque fois (). –

0

Merci à tous pour votre aide, voici ma solution finale.

<cfif isDefined("FORM.bnt2")> 
<cfloop index="id" list="#form.listofids#" delimiters=","> 
<cfquery name="accept" datasource="#request.dsn#"> 
UPDATE opt SET 
F14 = '#Evaluate("form.select_#id#")#' 
WHERE f5 = '#id#' 
</cfquery> 
</cfloop> 
</cfif> 


<cfform name="frm2" id="form2" method="post" action=""> 
<cfoutput query="accountCheck" > 
<cfinput type="radio" name="select_#f5#" value="y" required="yes" validateat="onsubmit" message="A value of Yes or No is required."> 
<cfinput type="radio" name="select_#f5#" value="n" required="yes" validateat="onsubmit" message="A value of Yes or No is required."> 
<cfinput type="hidden" name="listofids" value="#ValueList(accountCheck.f5)#" > 
</cfoutput> 
<cfinput name="bnt2" type="image" class="btn" src="images/accept.gif" value="x" style="float:right;" /> 
</cfform> 
+1

Jetez un autre coup d'œil aux suggestions de Peter Boughton. Il y a plusieurs améliorations que vous pourriez faire. Surtout la note sur cfqueryparam. BTW: Conservez-vous vraiment SSN dans un champ caché ..? – Leigh