2015-04-21 2 views
1

Question: (part 1) Je suis à la recherche du moyen le plus efficace pour définir mes valeurs d'entrée de formulaire en fonction des résultats de mon cfquery. Mes champs de formulaire correspondent tous aux noms de colonne dans la base de données. Je sais utiliser cfinsert Je peux mettre à jour la base de données avec des valeurs d'entrée de formulaire. Y a-t-il un moyen de faire cela en sens inverse?ColdFusion comment définir les valeurs d'entrée de formulaire à partir des résultats d'une requête cfquery?

(partie 1.5) Comment définir les valeurs des boutons select et radio en fonction de la valeur de cfquery?

Contexte: j'ai une forme avec 60+ entrées avec un mélange de text, select, radio et textarea. La page que je crée est destinée à permettre à l'utilisateur d'examiner les réponses qu'il a déjà soumises et de leur permettre de faire des changements et de soumettre à nouveau le formulaire et de mettre à jour la base de données avec leurs nouvelles réponses (le cas échéant). Ci-dessous est juste un petit échantillon d'entrées et je vais définir la valeur à moins qu'il y ait une manière différente.

<!--variables pulled from the URL--> 
    <cfset pageAction="#URL.action#"> 
    <cfset rfqID="#URL.rfqID#"> 
    <cfset rfqStatus="#URL.status#"> 

    <!--Query to get previous form answers --> 
    <cfquery name="getFormData" datasource="RC"> 
       SELECT  * 
       FROM  RFQ_Data 
       WHERE  form_ID = <cfqueryparam value="#ARGUMENTS.rfqID#"> 
    </cfquery> 

    <cfform name="rfq_form" class="pure-form pure-form-aligned" enctype="multipart/form-data" action="rfq_action.cfm" method="POST"> 

    <cfoutput>   
    <label>*Sold to Party:</label> 

<cfinput type="text" name="sold_to_party" value="#getFormData.sold_to_party#"/> 
<!--HOW DO I SET THE DEFAULT VALUE OF MY SELECT TO BE THE VALUE FOUND IN THE CFQUERY?--> 
     <label>*Product Type:</label> 
<select name="product_category" id="product_category"> 
    <option value="ts8-it">TS8-Data Center </option> 
    <option value="ts8-ie">TS8-Industrial </option> 
    <option value="WM_AE_JB">WM/AE/JB </option> 
    <option value="other">Other </option> 
    </select> 


<h3>Additional information:</h3>  
<textarea name="additional_info_datacenter" rows="10" cols="60" style="margin-left:40px;">#getFormData.additional_info_datacenter#</textarea> 
    <!--HOW DO I SET THE DEFAULT VALUE OF MY RADIO TO BE THE VALUE FOUND IN THE CFQUERY?--> 
    <label>19" Rails</label> 
    <input id="rails_yes" type="radio" name="19_Rails" value="yes"> YES 
    <input id="rails_no" type="radio" name="19_Rails" value="no"> NO 

</cfoutput>   
    <cfinput style="padding:4px 6px;" type="submit" value="Submit Current Order" name="submit"/> 

    </cfform> 

Répondre

3

pour sélection, vous pouvez essayer une comparaison pour chaque valeur d'option comme:

<select name="product_category" id="product_category"> 
     <option value="ts8-it" <cfif CompareNoCase(getFormData.product_category,"ts8-it") EQ 0>selected="selected"</cfif> >TS8-Data Center </option> 

Même façon, vous pouvez essayer les champs radio,

<input id="rails_yes" type="radio" name="19_Rails" value="yes" <cfif getFormData.19_Rails>checked="checked"</cfif> > 

    <input id="rails_no" type="radio" name="19_Rails" value="no" <cfif NOT getFormData.19_Rails>checked="checked"</cfif> > 
+0

J'espérais que je ne vais pas devoir le faire de cette façon en raison du nombre de cisaillement des entrées de sélection et d'options mais à moins d'une autre option, il semble que c'est ce que je dois faire. Merci pour vos commentaires. +1 – Denoteone

+0

Si vous prenez les valeurs d'option de n'importe quelle requête ou liste, vous pouvez les boucler là-bas. – shemy

+0

Les options sont statiques dans le formulaire. Seule l'option par défaut change en fonction de la sélection des utilisateurs dans un formulaire précédent. Je ne stocke pas les autres options ailleurs que dans le formulaire. Si je comprends bien votre recommandation. – Denoteone

1

S'il vous plaît essayer l'extrait de code jQuery suivant .

var selDefualtVal = '#getFormData.product_category#'; 
jQuery(document).ready(function() { 
     jQuery("#product_category option[value='"+selDefualtVal+"']").attr("selected","selected"); 
});