繁体   English   中英

将DropDown选择的值与其他选择的查询结果集一起传递

[英]Passing DropDown selected value along with other selected query result set

我有一个表单“ test.cfm”,它将值传递到操作页面“ testAction.cfm”!

test.cfm执行以下操作:

  1. 下拉框“ fruitsList”。

  2. 查询“ qryFruits”,它提取数据,然后显示查询结果集

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

它应该如何工作:

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM