[英]Passing DropDown selected value along with other selected query result set
我有一个表单“ test.cfm”,它将值传递到操作页面“ testAction.cfm”!
test.cfm执行以下操作:
下拉框“ fruitsList”。
查询“ qryFruits”,它提取数据,然后显示查询结果集
每个查询结果集的“添加”按钮
它应该如何工作:
下拉菜单“ fruitsList”将被选中。
选择结果列表中的“添加”按钮后,将传递“查询结果集-CurrentRow”值。
“添加”按钮传递“ query-resultset -CurrentRow”值,而不传递“ Drop down”值。
如何传递“下拉选择值”?
<!--- test.cfm --->
<script type="text/javascript" >
function assign_fruits()
//
{
var a = document.fruitsForm.fruitsList.selectedIndex;
document.getElementById('salesForce').value = document.fruitsForm.fruitsList.options[a].value;
}
</script>
<form name="fruitsForm" >
<table>
<tr>
<td>
<select name="fruitsList" onChange="assign_fruits()">
<option disabled="true">select One
<option value="m1">apple
<option value="m2" selected>orange
<option value="m3">banana
<option value="m4">grape
<option value="m5">mango
</select>
</td>
<!--- Trying to assign the DD-value to an input field --->
<input name="salesForce" value="">
</tr>
<cfquery name="qryFruits" datasoure="#dsn#">
Select values from Fruits_Table
</cfquery>
<cfloop startrow="1" endrow="#qryFruits.recordcount#" query="qryFruits">
<cfoutput>
<tr>
<td><a href="testAction.cfm">Add</a></td>
</tr>
</cfoutput>
</cfloop>
</table>
</form>
请帮助。 瓦斯
您正在以非常规的方式处理此问题,但是我相信以下内容可以满足您的需求:
<cfdump var="#form#">
<!--- test.cfm --->
<cfset qryFruits = queryNew("fruitID,fruitName")>
<cfset queryAddRow(qryFruits, 2)>
<cfset querySetCell(qryFruits, "fruitID", 1, 1)>
<cfset querySetCell(qryFruits, "fruitName", "Kiwi", 1)>
<cfset querySetCell(qryFruits, "fruitID", 2, 2)>
<cfset querySetCell(qryFruits, "fruitName", "Lime", 2)>
<script type="text/javascript" >
function assign_fruits() {
var a = document.fruitsForm.fruitsList.selectedIndex;
document.getElementById('salesForce').value = document.fruitsForm.fruitsList.options[a].value;
}
function submit(id) {
document.getElementById('fruitClicked').value = id;
document.forms["fruitsForm"].submit();
}
</script>
<form name="fruitsForm" id="fruitsForm" action="index.cfm" method="post">
<p>
<select name="fruitsList" onChange="assign_fruits();">
<option value="">select One</option>
<option value="m1">apple</option>
<option value="m2" selected>orange</option>
<option value="m3">banana</option>
<option value="m4">grape</option>
<option value="m5">mango</option>
</select>
</p>
<!--- Trying to assign the DD-value to an input field --->
<p>Fruit Slected from List Above: <input name="salesForce" id="salesForce" value=""></p>
<p>Fruit Clicked Below: <input name="fruitClicked" id="fruitClicked" value=""></p>
<cfloop startrow="1" endrow="#qryFruits.recordcount#" query="qryFruits">
<cfoutput>
<div></div><a href="##" onclick="submit(#qryFruits.fruitID#);">#qryFruits.fruitName#</a></div>
</cfoutput>
</cfloop>
</form>
请注意,在某些元素中缺少“ id”属性,这导致JavaScript失败。
我不太确定最终结果是什么,但是您是否只是想将#values#中的输出传递给该javascript函数?
您始终可以直接传递值。
<tr>
<td>#values# </td>
<td><a href="test.cfm" onClick="assign_fruits(#values#);">Add</a></td>
</tr>
您的JavaScript表示var a = document.fruitsForm.fruits.selectedIndex;
但是您的表单字段不称为“ fruits”,而是称为fruitsList。 尝试
document.fruitsForm.fruitsList.selectedIndex;
代替。
您的输出可以稍微简化。 但是我还是不太清楚你想做什么。 testAction.cfm的目的是什么?
<cfoutput query="qryFruits">
<tr>
<td><a href="testAction.cfm?ID=#qryFruits.CurrentRow#">Add #qryFruits.Values#</a></td>
</tr>
</cfoutput>
好的,我仍然不确定您要做什么。 我假设您想将参数salesForce传递给testAction.cfm。 它的值应该是m1,m2,m3,...
因此,从本质testAction.cfm?salesForce=m1
您需要使自己的网址像testAction.cfm?salesForce=m1
这样正确吗? 如果是这样,请摆脱隐藏的表单字段和所有JavaScript。 是否将fruitsList下拉列表始终按顺序编号为m1-mX? (即您不去m1,m79,m4,m2,m99等)。
这是一个假设-下拉列表中的水果列表是否对应于水果查询? 即是以相同顺序排列的相同水果吗? 如果是这样,您应该抛弃下拉列表,只保留链接(反之亦然)。
<!--- test.cfm --->
<cfquery name="qryFruits" datasoure="#dsn#">
Select values from Fruits_Table
</cfquery>
<table>
<cfoutput query="qryFruits">
<tr>
<td><a href="testAction.cfm?salesForce=m#qryFruits.CurrentRow#">Add #qryFruits.Values#</a></td>
</tr>
</cfoutput>
</table>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.