2015-04-21 11 views
1

Вопрос: (часть 1) Я ищу наиболее эффективный способ установки входных значений формы на основании результатов моего cfquery. Мои поля формы соответствуют именам столбцов в базе данных. Я знаю, используя cfinsert Я могу обновить базу данных с помощью входных значений формы. Есть ли способ сделать это в обратном порядке?ColdFusion как установить значения ввода формы из результатов cfquery?

(часть 1.5) Как установить значения кнопок выбора и радиосвязи на основе значения моей cfquery?

фон: У меня есть форма с 60+ входов со смесью text, select, radio и textarea. Страница, которую я создаю, позволяет пользователю просмотреть ответы, которые они отправили ранее, и разрешить им вносить изменения и снова отправлять форму и обновлять базу данных новыми ответами (если есть).

Ниже приводится только небольшая выборка входных данных, и я, как я установлю значение, если нет другого способа.

<!--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> 

ответ

3

для выбора вы можете попробовать сравнения для каждых значений опций, таких как:

<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> 

Точно так же вы можете попробовать поле радио,

<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

Я надеялся, что я не буду иметь, чтобы сделать это таким образом из-за числа сдвига отдельных входов и вариантов, но если нет другого варианта, похоже, что это то, что я должен делать. Спасибо за ваш отзыв. +1 – Denoteone

+0

Если вы берете значения опций из любого запроса или списка, вы можете их зацикливать. – shemy

+0

Опции статичны в форме. Изменяется только параметр по умолчанию, основанный на выборе пользователей в предыдущей форме. Я не сохраняю другие параметры в любом месте, кроме формы. Если я правильно понимаю вашу рекомендацию. – Denoteone

1

Пожалуйста, попробуйте следующий JQuery фрагмент коду ,

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

 Смежные вопросы

  • Нет связанных вопросов^_^