2011-01-20 27 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> 
相關問題