我有一个表单“test.cfm”它将值传递给操作页面“testAction.cfm”!
test.cfm执行以下操作: -
下拉框“fruitsList”。
查询“qryFruits”,用于提取数据然后显示查询结果集
每个查询结果集的“添加”按钮
它应该如何运作: -
将选择下拉列表“fruitsList”。
选择结果列表中的“添加”按钮后,将传递“查询结果集-CurrentRow”值。
添加按钮正在传递“query-resultset -CurrentRow”值,但不是“下拉”值。
如何传递“下拉选择值”?
<!--- 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>
请帮助。 输精管
答案 0 :(得分:5)
你有点不同寻常,但我相信以下是你想要的:
<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>
请注意,您的某些元素中缺少导致JavaScript失败的“id”属性。
答案 1 :(得分:2)
我不太确定最终结果是什么,但你只是想把#values#中输出的内容传递给那个javascript函数吗?
您始终可以直接传递该值。
<tr>
<td>#values# </td>
<td><a href="test.cfm" onClick="assign_fruits(#values#);">Add</a></td>
</tr>
答案 2 :(得分:0)
你的javascript说
var a = document.fruitsForm.fruits.selectedIndex;
但你的表单字段不叫'fruits',它叫做fruitsList。试试
document.fruitsForm.fruitsList.selectedIndex;
代替。
答案 3 :(得分:0)
您的输出可以略微简化。但是我仍然有点不清楚你要做什么。 testAction.cfm的目的是什么?
<cfoutput query="qryFruits">
<tr>
<td><a href="testAction.cfm?ID=#qryFruits.CurrentRow#">Add #qryFruits.Values#</a></td>
</tr>
</cfoutput>
答案 4 :(得分:0)
所以基本上你需要让你的网址像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>