javascript - 将下拉菜单中的 3 个选定值发送并设置到 JavaScript 函数 PHP

标签 javascript php jquery

我有三个下拉菜单:

<?php 
        if(isset($som)) {

=======first drop down=======

              echo "<select id="."som-patch1"." class="."form-control".">";
                echo "<option value="."select".">Please Select SOM patch...</option>";


       for ($i=0; $i < count($som) ; $i++) { 
           echo '<option value="'.$som[$i]['som'].'">'.$som[$i]['som'].' </option>';
        }
        echo "</select>";

=======second drop down=======

                      echo "<select id="."som-patch1-month"." class="."form-control".">";
                echo "<option value="."select".">Please Select Month ...</option>";



       for ($i=0; $i < 12 ; $i++) {
           $month = date('F', strtotime('-'.$i.' month', strtotime(date('Y-m-01')))); 

           echo '<option value="'.$month.'">'.$month.'</option>';
        }
        echo "</select>";

=======third drop down=======



                echo "<select id="."som-patch1-year"." class="."form-control".">";
                echo "<option value="."select".">Please Select Year ...</option>";


       for ($i=0; $i < 12 ; $i++) {

           $year = date('Y', strtotime('-'.$i.' year', strtotime(date('Y-m-01'))));
           echo '<option value="'.$year.'">'.$year.'</option>';
        }
        echo "</select>";

      }        
    ?> 

我可以成功将所选值发送到以下 JavaScript 函数:

$('[id^=som-patch1]').on('change', function() {    
  alert( this.value ); 

});

我遇到的问题是:

我无法在变量中设置相关值,以便调用 add_som_donut_chart_org_data() 方法。 另外,我需要确保在函数调用之前已选择所有三个值。

我尝试过以下方法:

    $('[id^=som-patch1]').on('change', function() {

      var som = null;
      var month = null;
      var year = null;
    if (id=='som-patch1'){
som = this.value;
}
      alert( som ); 


    });

但这并没有设置 som 值。 期望的结果应该是:

if (som !== null && month !== null && year !== null) {add_som_donut_chart_org_data(som,month,year)}

提前致谢。

更新:以下代码解决了该问题

$('[id^=som-patch1]').on('change', function() {

  var id = $(this).attr("id");

  if (id == 'som-patch1') {
           som = this.value;
  }
  if (id == 'som-patch1-month') {
           month = this.value;
  }
  if (id == 'som-patch1-year') {
           year = this.value;
  }


    if (som !== null && month !== null && year !== null) {

      add_som_donut_chart_org_data(som,month,year);

    }

});

最佳答案

根据您当前的代码条件, if (id=='som-patch1') 永远不会为 true,因为 id 尚未定义。因此它不会设置 som 变量。原因很基本,您没有在代码中定义 id 变量。在您的条件之前使用以下代码:

var id = $(this).attr("id");

关于javascript - 将下拉菜单中的 3 个选定值发送并设置到 JavaScript 函数 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941579/

相关文章:

javascript - "Uncaught Error: View type "时间线日"is not valid"完整日历版本3.9.0

javascript - JavaScript 变量的范围在此脚本中如何工作?

php - 全局变量在 php 中不起作用

php - DICOM 工作列表在 DCMTK wlmscpfs 中返回不匹配

Magento 中的 jquery/prototype 冲突

jquery - 使用确认框防止重力形式提交

jquery - Bootstrap 旋转木马标题和指示器在外面

javascript - 如何找到我点击页面的任何内容的相对xpath(Javascript)

javascript - 按钮使用 jQuery 从表行获取数据

php - Laravel 护照 API : Retrieve Authenticated Token