显示来自foorloop的数组结果 - JS

时间:2018-06-05 06:33:04

标签: javascript laravel

在我的控制器中,当我返回@foreach($cars->drivers as $key=>$value)时,我会在数组中返回4 cars,但在下面的js中,只会显示最后一辆车。在我的代码中如何发生这种情况?

PS:Javascript& amp; Laravel

JS

 <script>
 @foreach($cars->drivers as $key=>$value)
  var material = 
  '<div class="input-field col input-g s12">' +
    '<input name="cars_name[]" value="{{$value}}" type="text">' +

   '</div>'
    ;
    @endforeach

</script>

2 个答案:

答案 0 :(得分:1)

您在var material循环中无法foreach。你需要在它之外声明它,而不是在循环内部material += 'YOUR_CODE'

它看起来像这样:

<script>
var material = '';
@foreach{$cars->drivers as $key => $value)
   material += 
     '<div class="input-field col input-g s12">' +
        '<input name="cars_name[]" value="{{$value}}" type="text">' +
     '</div>';
@endforeach
</scrript>

在foreach循环中包含材质变量只会获得最后的结果,因为它会被覆盖,每个循环都会通过其元素覆盖。这样,您可以将值附加到现有变量,并获得所有结果,而不仅仅是最后一个结果

答案 1 :(得分:0)

您在foreach循环中声明了可变材质。因此,每次循环时,都会使用循环中的值再次声明变量材质。因此,变量是在foreach循环中使用最后一个赋值声明的。这就是为什么你只得到列表中的最后一项。

您需要在循环外声明变量,并在变量循环中连接项目。

PS:尝试使用let和es6功能来实现更好的js编程。