将变量值从一个函数传递到另一个函数

时间:2014-11-15 06:36:02

标签: javascript php jquery html

我使用了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菜单调用

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();

  ?> 

我的查询是如何在不传递参数的情况下在getVal函数中使用selVal1和selval2的值。

3 个答案:

答案 0 :(得分: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 :(得分: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附加事件)

答案 2 :(得分: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]);
    }
}

希望您满足自己的需求。这里 Working FIDDLE

选中此选项: enter image description here