2011-01-20 40 views
1

我有一个表格“test.cfm”它将值传递给一个操作页“testAction.cfm”!传递DropDown选定的值以及其他选定的查询结果集

test.cfm执行以下操作: -

  1. 一个下拉框“fruitsList”。

  2. 拉动数据,然后查询“qryFruits”显示查询结果集

  3. “添加”按钮,每一个查询结果集

它应该是如何工作的: -

  1. 将选择下拉菜单“fruitsList”。

  2. 一旦选择结果列表中的“添加”按钮,将传递“查询结果集-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> 

请帮忙。 Vas

+1

你是如何通过任何东西?您没有AJAX调用,您没有表单提交或操作,并且您的JS不会在任何地方分配值。你在哪里试图贬值?通过您生成的链接来测试.cfm? – 2011-01-20 22:10:30

+1

你过得怎么样?通过“添加”按钮中的“href”链接。 – vas 2011-01-26 22:38:50

+0

您没有AJAX调用,?不,使用cfquery来提取数据。 – vas 2011-01-26 22:39:45

回答

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失败。

2

我不太确定最终结果是什么,但是你只是试图将#values#中输出的内容传递给该javascript函数吗?

您可以随时直接传递值。

<tr> 
    <td>#values# </td> 
    <td><a href="test.cfm" onClick="assign_fruits(#values#);">Add</a></td>   
</tr> 
0

您的JavaScript说 var a = document.fruitsForm.fruits.selectedIndex; 但你的表单字段是不是叫 '水果',这就是所谓的fruitsList。尝试

document.fruitsForm.fruitsList.selectedIndex; 

改为。

0

您的输出可以稍微简化。但我仍然不清楚你想要做什么。 testAction.cfm的目的是什么?

<cfoutput query="qryFruits"> 
     <tr> 
      <td><a href="testAction.cfm?ID=#qryFruits.CurrentRow#">Add #qryFruits.Values#</a></td>   
     </tr> 
</cfoutput> 
0

好的,我还不确定你想要做什么。我假设你想传递一个参数salesForce到testAction.cfm。它的价值应该是m1,m2,m3,...

所以基本上你需要让你的网址像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> 
相关问题