2014-11-15 3 views
1

Я использовал 3 функции. getvalyear() и getvaltrimester() используются для получения значения выбранного раскрывающегося списка. getVal() получает id как параметр от нажатой кнопки.Передача значения переменной из одной функции в другую

function getvalyear(ctrl1){  
    var sel = ctrl1.selectedIndex; 
    var selVal1 = ctrl1.options[sel].value;  
} 

function getvaltrimester(ctrl2){ 
    var sel = ctrl2.selectedIndex; 
    var selVal2 = ctrl2.options[sel].value; 
} 

function getVal(clicked_id) 
{ 

} 

getvalyear() и getvaltrimester() функция прибудет называеться из меню выбора, как

Select Year: 
     <select name="year" id="year" style="width: 200px" onchange="getvalyear(this)"> 
      <option value="2014">2014</option> 
      <option value="2015">2015</option> 
      <option value="2016">2016</option> 
      <option value="2017">2017</option> 
      <option value="2018">2018</option> 
     </select> 
    &nbsp;&nbsp;&nbsp;&nbsp; 
    Select Trimester: 
     &nbsp;&nbsp; 
     <select name="trimester" id="trimester" style="width: 200px" onchange="getvaltrimester(this)"> 
      <option value="1st">1st</option> 
      <option value="2nd">2nd</option> 
      <option value="3rd">3rd</option> 
     </select> 

GETVAL() функция прибудет называеться на кнопку мыши, как

<?php 
     require('connect.php'); 
     $sql = "SELECT ictv_id,ictv_name, lb_name FROM ictv_details where region_id='1' and lb_type='DDC' "; 
     $result = mysql_query($sql)or die(mysql_error()); 
     echo "<div style='text-align: left'>";     
     echo "<table>"; 
     echo "<tr><th>Name</th><th>Local Body</th><th>Absenteeism</th> 
     <th>Creativity</th><th>Problem Solving</th><th>Submit</th></tr>"; 
     while($row = mysql_fetch_array($result)){ 
        $ict_id= $row['ictv_id']; 
        $name= $row['ictv_name']; 
        $lb= $row['lb_name']; 
     echo "<tr><form name=\"form$ict_id\" id=\"form$ict_id\"><td>".$name."</td><td>".$lb."</td> 

    <td> 
     <select name=\"absent$ict_id\" id=\"absent$ict_id\" style=\"width: 200px\"> 
     <option value></option> 
     <option value=\"1\">1</option> 
     <option value=\"2\">2</option> 
     <option value=\"3\">3</option> 
     <option value=\"4\">4</option> 
     <option value=\"5\">5</option> 
     </select> 
    </td> 

    <td> 
     <select name=\"creative$ict_id\" id=\"creative$ict_id\" style=\"width: 200px\"> 
     <option value></option> 
     <option value=\"1\">1</option> 
     <option value=\"2\">2</option> 
     <option value=\"3\">3</option> 
     <option value=\"4\">4</option> 
     <option value=\"5\">5</option> 
     </select> 
    </td> 

    <td> 
     <select name=\"problem$ict_id\" id=\"problem$ict_id\" style=\"width: 200px\"> 
     <option value></option> 
     <option value=\"1\">1</option> 
     <option value=\"2\">2</option> 
     <option value=\"3\">3</option> 
     <option value=\"4\">4</option> 
     <option value=\"5\">5</option> 
     </select> 
    </td> 

<td> 
<input type=\"button\" name=\"submit$ict_id\" id=\"submit$ict_id\" value=\"Submit\" class=\"btn btn-primary \" onclick=\"getVal(this.id)\"> 

</td> 
</form> 

</tr>"; 

} 

     echo "</table><br /><br /></div>"; 
    // mysql_close(); 

    ?> 

Моего запрос как можно Я использую значение selVal1 и selval2 в функции getVal без прохождения аргумента.

+1

Почему бы не использовать глобальные переменный тогда? Сделайте selVal1 и selval2 глобальными. –

+0

Если вы используете jQuery, покажите нам, как вызывается эти функции, таким образом вы, вероятно, можете избежать глобальных привязок. – adeneo

+0

@SajibAcharya Я сделал selVal1 и selVal2 как глобальную переменную, но ее значение не отображается в функции getval – stackuser

ответ

4
var selVal1 = ""; 
var selVal2 = ""; 
function getvalyear(ctrl1){ 

    var sel = ctrl1.selectedIndex; 
    selVal1 = ctrl1.options[sel].value; 

} 

function getvaltrimester(ctrl2){ 
    var sel = ctrl2.selectedIndex; 
    selVal2 = ctrl2.options[sel].value; 
} 

function getVal(clicked_id) 
{ 
    alert(selVal1); 
    alert(selVal2); 
} 
1

Вам нужно добавить эти переменные высокого уровня области видимости. Вы можете сделать эти вары глобальными (я не рекомендую), или вы можете обернуть свой код в автономной исполняемой функции , что является лучшей практикой.

Посмотрите:

(function(){ 
    var selVal1 = '', 
    selVal2 = ''; 

    function getvalyear(ctrl1){ 
     var sel = ctrl1.selectedIndex; 
     selVal1 = ctrl1.options[sel].value; 
    } 

    function getvaltrimester(ctrl2){ 
     var sel = ctrl2.selectedIndex; 
     selVal2 = ctrl2.options[sel].value; 
    } 

    function getVal(){ 
     console.log(selVal1); 
     console.log(selVal2); 
    } 
})(); 

Вот codepen с обновлениями кода. (Прикрепление событий с использованием jQuery)

+0

с использованием вашего предложения не сработало. – stackuser

+0

@stackuser У вас есть ошибка? У вас есть больше кода, чем опубликованные? Обратите внимание, что вы должны обернуть свой полный код функции. Скрипка с вашим кодом поможет много. – ianaya89

+0

@stackuser Вот пример работы: http://codepen.io/ianaya89/pen/MYWGwj – ianaya89

1

getvalyear() и getvaltrimester() обе выполняют ту же функциональность, поэтому это может быть только одна функция.

var selected_array = [];//array variable 

function getvalyear(ctrl){  
    var sel = ctrl.selectedIndex; 
    selected_array.push(ctrl.options[sel].value);  
} 

function getval(clicked_id) 
{ 
    for(var i=0; i<selected_array.length; i++) { 
     alert(selected_array[i]); 
    } 
} 

Надеется, что это вы удовлетворяете вашего needs.Here Working FIDDLE

Проверь этот вариант: enter image description here

+0

есть два меню выбора. Я использовал различные функции для получения значения выбранной опции и использования этих значений в функции, которая срабатывает при нажатии кнопки. – stackuser

+0

. Обновите свой вопрос. Когда и где вы вызываете функцию. Я думаю, что этой единственной функции достаточно, поэтому вы можете использовать эту функцию для обоих параметры выбора. –