ColdFusion 如何根据 cfquery 的结果设置表单输入值?
ColdFusion how to set form input values from the results of a cfquery?
问题:(第 1 部分)我正在寻找最有效的方法来根据 cfquery
的结果设置表单输入值。我的表单字段都与数据库中的列名匹配。 我知道使用 cfinsert
我可以用表单输入值更新数据库。有没有办法反过来做?
(第 1.5 部分)如何根据 cfquery 的值设置 select 和单选按钮的值?
背景: 我有一个包含 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>
对于 select 您可以尝试比较每个选项值,例如:
<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> >
请尝试以下 jQuery 代码段。
var selDefualtVal = '#getFormData.product_category#';
jQuery(document).ready(function () {
jQuery("#product_category option[value='"+selDefualtVal+"']").attr("selected","selected");
});
问题:(第 1 部分)我正在寻找最有效的方法来根据 cfquery
的结果设置表单输入值。我的表单字段都与数据库中的列名匹配。 我知道使用 cfinsert
我可以用表单输入值更新数据库。有没有办法反过来做?
(第 1.5 部分)如何根据 cfquery 的值设置 select 和单选按钮的值?
背景: 我有一个包含 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>
对于 select 您可以尝试比较每个选项值,例如:
<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> >
请尝试以下 jQuery 代码段。
var selDefualtVal = '#getFormData.product_category#';
jQuery(document).ready(function () {
jQuery("#product_category option[value='"+selDefualtVal+"']").attr("selected","selected");
});