Отображение результатов массива из foorloop - JS - PullRequest
0 голосов
/ 05 июня 2018

В моем контроллере, когда я возвращаю @foreach($cars->drivers as $key=>$value), я получаю 4 cars, возвращенный в массиве, но в моем js ниже, отображается только последний автомобиль.Как это происходит в моем коде ниже?

PS: новичок в Javascript и 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 голосов
/ 05 июня 2018

Вы объявляете свой переменный материал внутри цикла foreach.Таким образом, каждый раз, когда цикл повторяется, материал переменной объявляется снова со значением из цикла.Таким образом, переменная объявляется с последним присваиванием в цикле foreach.Вот почему вы получаете только последний элемент в списке.

Вам необходимо объявить переменную вне цикла и объединить элементы в цикле в переменной.

PS: попробуйте использовать функции let и es6 для лучшего программирования js.

0 голосов
/ 05 июня 2018

Вы не можете иметь 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 будет толькоВы получите последний результат, потому что он перезаписывается каждый раз, когда цикл проходит через его элементы.Таким образом, вы добавляете значение к существующей переменной и получаете все результаты вместо только последнего

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...