javascript - Ajax获取列表值成为javascript中的变量

标签 javascript jquery ajax codeigniter

我想让列表值成为javascript中的变量来完成公式:10 * vHasil_m * 32.03* 1000/5

我有一个这样的查询:

select round(avg(cast(t_dtl.hasil_m as decimal(6,4))),4) as hasil_m from t_hdr JOIN  t_dtl ON t_hdr.headerid = t_dtl.headerid where id_solvent ='NaOH' AND status='ok' AND concentrate='0.0100' AND date_start <='2016-05-01' AND date_finish >='2016-05-01'

查询结果如下:

| hasil_m     |
| ----------- |
| 0.0100      |

我希望以上列值成为公式 vHasil_m 的变量。

为了运行该查询,我创建了一个模型:

function getdata_naoh($datetest){
    $result = $this->db1->query("select round(avg(cast(t_dtl.hasil_m as decimal(6,4))),4) as hasil_m from t_hdr JOIN  t_dtl ON t_hdr.headerid = t_dtl.headerid where id_solvent ='NaOH' AND status='ok' AND concentrate='0.0100' AND date_start <='$datetest' AND date_finish >='$datetest'");
    if($result->num_rows()>0){
        return $result->result_array();
    }else{
        return array();
    }
}

以及执行它的 Controller :

function get_NaOH(){
    $date_analysis = trim($this->input->post('date_analysis'));
    $datetest = trim($this->input->post('date_analysis'));
    $datetest = substr($datetest,6,4).'-'.substr($datetest,3,2).'-'.substr($datetest,0,2);

    $dtnaoh = $this->M_tambahan->getdata_naoh($datetest);

    foreach($dtnaoh as $row){
        $data1 .= $row[hasil_m];
    }

    $data =  $data1;
    echo $data;
}

然后我创建一个像这样的ajax:

<script type="text/javascript">
$(document).ready(function(){  
    $(document).on('change','.no_picno', function() {
        var that = $(this);
        var dt_no = that.val();
        console.log(that.next());
        var col_date_analysis =  that.parent().prev().find('.date_analysis');
        var date_analysis = col_date_analysis.val();

        $.ajax({
                  type :"post",
                  url : "<?php echo base_url();?>index.php/additionals/file/C_utils/get_NaOH",
                  data : { date_analysis: date_analysis, no_picno: dt_no },
                  success: function(data){
                      // code here
                  }
        });
    });
});
</script>

ajax 已经正常工作,没有错误,然后我创建一个 javascript 来运行公式:

<script type="text/javascript">
    function getTotal() {
        var obj = document.getElementsByTagName('input');  

        for(var i=0; i < obj.length; i++) {
          if (obj[i].name == "sulfur_vnaoh[]") { 
              var dt_sulfur_vnaoh = obj[i].value;
          };
          if (obj[i].name == "sulfur_ws[]") { 
              var dt_sulfur_ws = obj[i].value
          };
          if (obj[i].name == "sulfur_hasil[]") {
            if ((dt_sulfur_ws != '')&&(dt_sulfur_vnaoh != '')) {


              var totalSulfur = 10*vHasil_m*32.03*1000/5;
              obj[i].value = totalSulfur;
            } else {
                obj[i].value = '';
            };
          };
        }
    };
</script>

如何在 JavaScript 中声明或初始化 ajax 结果到变量中以完成该公式?

谢谢。

最佳答案

在你的ajax代码中,你需要创建一个全局变量来存储你的数据:

<script type="text/javascript">
$(document).ready(function(){  
    $(document).on('change','.no_picno', function() {
        var that = $(this);
        var dt_no = that.val();
        console.log(that.next());
        var col_date_analysis =  that.parent().prev().find('.date_analysis');
        var date_analysis = col_date_analysis.val();

        $.ajax({
                  type :"post",
                  url : "<?php echo base_url();?>index.php/additionals/file/C_utils/get_NaOH",
                  data : { date_analysis: date_analysis, no_picno: dt_no },
                  success: function(data){
                      window.data=data;
                  }
        });
    });
});
</script>

然后在 ajax 调用之后,触发 getTotal() 函数,然后在公式中使用 window.data 而不是使用 vHasil_m :

<script type="text/javascript">
    function getTotal() {
        var obj = document.getElementsByTagName('input');  

        for(var i=0; i < obj.length; i++) {
          if (obj[i].name == "sulfur_vnaoh[]") { 
              var dt_sulfur_vnaoh = obj[i].value;
          };
          if (obj[i].name == "sulfur_ws[]") { 
              var dt_sulfur_ws = obj[i].value
          };
          if (obj[i].name == "sulfur_hasil[]") {
            if ((dt_sulfur_ws != '')&&(dt_sulfur_vnaoh != '')) {


              var totalSulfur = 10*window.data*32.03*1000/5;
              obj[i].value = totalSulfur;
            } else {
                obj[i].value = '';
            };
          };
        }
    };
</script>

关于javascript - Ajax获取列表值成为javascript中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427284/

相关文章:

javascript - 使用jQuery在点击时隐藏父div

javascript - 我想恢复 localStorage 中的变量而不替换现有变量?

jquery - 使用动态和静态输入php序列化并插入到mysql表单

javascript - 如果得到相同的数据,则停止发送请求

asp.net - 客户端验证后的 RegisterOnSubmitStatement

javascript - 如何使用 HTML、CSS 和/或 Javascript 显示证明树?

javascript - 尝试用javascript制作座位预订系统并使用本地存储保存数据

javascript - jQuery 延迟 promise 逻辑协助

jquery - 如何动态调整DIV高度?

javascript ajax 有时无法执行