在我的控制器中,当我返回@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>
答案 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编程。