Передача выбранного значения DropDown вместе с другим выбранным набором результатов запроса - PullRequest
1 голос
/ 20 января 2011

У меня есть форма "test.cfm". Она передает значения на страницу действий "testAction.cfm"!

test.cfm выполняет следующие действия: -

  1. Выпадающий список «FruitList».

  2. Запрос «qryFruits», который извлекает данные и затем отображает набор результатов запроса

  3. Кнопка «Добавить» для каждого набора результатов запроса

Как это должно работать: -

  1. Необходимо выбрать выпадающий список "fruitsList".

  2. После выбора кнопки «Добавить» в списке результатов необходимо передать значение «запрос-набор результатов -CurrentRow».

    Кнопка добавления передает значение «query-resultset -CurrentRow», но НЕ значение «Drop down».

Как передать «dropdown-selected-value»?

    <!--- 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

Ответы [ 5 ]

5 голосов
/ 27 января 2011

Вы делаете это немного нетрадиционно, но я думаю, что следующее делает то, что вы ищете:

 <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.

2 голосов
/ 21 января 2011

Я не совсем уверен, каков конечный результат, но вы просто пытаетесь передать то, что выводится в # values ​​#, этой функции javascript?

Вы всегда можете передать значение напрямую.

<tr>
     <td>#values#  </td> 
     <td><a href="test.cfm" onClick="assign_fruits(#values#);">Add</a></td>          
</tr> 
0 голосов
/ 27 января 2011

ОК, я все еще не совсем уверен, что вы пытаетесь сделать.Я предполагаю, что вы хотите передать параметр salesForce в testAction.cfm.И его значение должно быть m1, m2, m3, ...

Поэтому, по сути, вам нужно, чтобы ваши URL были такими, как 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>
0 голосов
/ 27 января 2011

Ваш вывод может быть немного упрощен.Но мне все еще немного неясно, что ты пытаешься сделать.Какова цель testAction.cfm?

<cfoutput query="qryFruits">
        <tr> 
            <td><a href="testAction.cfm?ID=#qryFruits.CurrentRow#">Add #qryFruits.Values#</a></td>           
        </tr>   
</cfoutput>
0 голосов
/ 22 января 2011

Ваш javascript говорит var a = document.fruitsForm.fruits.selectedIndex;, но ваше поле формы не называется 'fruits', оно называется fruitsList.Попробуйте вместо

document.fruitsForm.fruitsList.selectedIndex;

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...