繁体   English   中英

JavaScript和jQuery中变量的值不显示

[英]The value of variable in JavaScript and jQuery doesn't show

为什么变量的值不显示? 我认为它应该是1或0,具体取决于变量bayar内的值,但是为什么它不起作用

我尝试做任何我能做的事,但是它不像尝试更改多个代码那样起作用,但是它不起作用。

这是我的控制器代码:

 public function generated(){
 $data=DB::table("tb_trx_perhitungan_bunga_simpanan")
        ->selectRaw('trx_bulan')
        ->get();  

  return view('crud.form.cobaNampilin',compact('data'));
 }

这是我的JavaScript和jQuery代码:

<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
        <script type="text/javascript">
        $(document).ready(function() {
            var a;
            var array = {!! json_encode($data) !!};
            var i;
            var b;
            $('#bulan').keyup(function(){
            var bayar=parseInt($('#bulan').val());
                for(i=0;i<=array.length;i++){
                    if(bayar==array[i].trx_bulan){
                        a=1;
                    }
                    else{
                        a=0;
                    }
                }

             $('#hasil').val(a);
            });
        });
        </script>

我预期输出是1或0

我认为var array的内容应该为[trx_bulan 1],[trx_bulan 2],[trx_bulan 3],[trx_bulan 4],[trx_bulan 5],[trx_bulan 6]因为array内容是一个数组对象。 我在网站上读到了这就是为什么我使用array[index].trx_bulan]来调用每个索引的值的原因。

这是表数据的屏幕截图:

这是表数据的屏幕截图

因此,如果您有一个数据表,例如:

表数据

然后考虑以下代码:

 $(function() { var a = 0; /* In laravel use: var data = {{json_encode($data)}}; it will translate to something like: */ var data = [{ id: 27, trx_bulan: 1, trx_tahun: 2018, tangal_proses: "2018-12-09 07:23:00", persentase_bunga: 0.2, id_user: 3 }, { id: 28, trx_bulan: 2, trx_tahun: 2018, tangal_proses: "2018-12-09 03:42:39", persentase_bunga: 0.2, id_user: 3 }, { id: 29, trx_bulan: 3, trx_tahun: 2018, tangal_proses: "2018-12-09 03:43:43", persentase_bunga: 0.2, id_user: 3 }, { id: 30, trx_bulan: 4, trx_tahun: 2018, tangal_proses: "2018-12-09 03:44:06", persentase_bunga: 0.2, id_user: 3 }, { id: 31, trx_bulan: 5, trx_tahun: 2018, tangal_proses: "2018-12-09 03:45:40", persentase_bunga: 0.2, id_user: 3 }, { id: 33, trx_bulan: 6, trx_tahun: 2018, tangal_proses: "2018-12-09 06:32:38", persentase_bunga: 0.2, id_user: 3 }]; $('#bulan').keyup(function(e) { var bayar = parseInt($('#bulan').val()); a = 0; $.each(data, function(k, v) { if (bayar == v.trx_bulan) { console.log("Hit", v); a = 1; } }); $('#hasil').val(a); }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="bulan" /> <br /> <input type="text" id="hasil" /> 

您可能要考虑在用户键入某些内容时切换到type="number"或检查条目是否为数字值。

希望能有所帮助。

它永远不会返回输出,因为错误的循环条件, for(i=0;i<=array.length;i++)的循环将引发错误,而$('#hasil').val(a); 将不会执行。

TypeError:array [i]未定义

这是因为i索引超出范围,请仅使用<

for(i=0; i<array.length; i++)

如果ID为hasil元素不是<input>使用.html()

$('#hasil').html(a);

有几种方法可以转换为JSON

  • @json Blade指令

      var array = @json($data); 
  • 单曲括号

     var array = {!! json_encode($data) !!}; 
  • 使用toJson()

     var array = {!! $data->toJson() !!}; 
  • 和本地PHP

     var array = <?php echo json_encode($array); ?>; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM