Как использовать массив laravel в <script>коде для цикла (foreach) - PullRequest
0 голосов
/ 23 марта 2019

Мне нужно использовать переменные laravel (foreach ($ attribute как $ attribute)) в коде JavaScript

У меня есть динамический ввод добавить или удалить страницу в лезвии laravel. Посетите: Динамически добавлять или удалять поля ввода с помощью JQuery

Теперь я хочу использовать select и dropdown вместо простого ввода (name), но как передать набор переменных в тег script?

Это первый статический выпадающий список:

<table class="table table-bordered" id="dynamic_field">
   <tr>
      <td>
         <select class="form-control m-select2" id="m_select2_1" name="attribute[1]['name']">
             <option value="value">name</option>
             <option value="value2">name2</option>
             <option value="value3">name3</option>
         </select>
       </td>
       <td>
           <input type="text" name="attribute[1]['price']" placeholder="Enter your Price" class="form-control name_list" />
       </td>
       <td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td>
    </tr>
</table>

и это мой код в теге script:

$('#add').click(function(){
      i++;
      $('#dynamic_field').append('<tr id="row'+i+'" class="dynamic-added"><td><input type="text" name="attribute['+i+'][\'name\']" placeholder="Enter your Name" class="form-control name_list" /></td><td><input type="text" name="attribute['+i+'][\'price\']" placeholder="Enter your Price" class="form-control name_list" /></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
});

Я хочу создать что-то подобное вместо attribute[]['name'] в теге script:

<select class="form-control m-select2" id="m_select2_1" name="attribute[1]['name']">
    @foreach($attributes as $attribute)
        <option value="{{$attribute->id}}">{{$attribute->name}}</option>
    @endforeach
</select>

1 Ответ

0 голосов
/ 24 марта 2019

Вы можете использовать @json или {!! json_encode() !!}, чтобы назначить его переменной javascript в вашем файле .blade.php.

<script>
   let data = @json($attributes)
</script>

В файле JS переменная data будет иметь нужный массив:

console.log(data);
...