Попытка динамически заполнить данные в разделе моего файла лезвия с помощью Ajax. Код выглядит так:

@if(count($chat) != 0)
  @foreach($chat as $d)

    <a href="#" class="media border-bottom-blue-grey border-bottom-lighten-5" id="link{{ $d->id }}">
    
     <div class="media-body w-100">
     <h6 class="list-group-item-heading font-medium-1 text-bold-700">{{ $d->name }}{{ $d->unread_messages }}
     @if( $d->unread_messages > 0)
        <span class="badge badge-pill badge-danger lighten-3">{{ $d->unread_messages }}</span></span> 
    </h6>
    @endif
    </div>

    </a>

    <div id="target"></div>

    <script>

     var link_id ="#link";
     $(link_id.concat( {{ $d->id }} )).click(function(e) { // Bind closure to #link1's onClick event
       e.preventDefault();
       jQuery.get('show/{{ $d->id }}', function(data) { // Perform AJAX GET request
        var html = "<h1> Hello </h1>"
        $('target').@append(html); 
         });
       });

     </script>

  @endforeach
@endif

По сути, я визуализирую чаты, заполненные данными ($ chat) из контроллера. Когда щелкают поля, я вызываю маршрут ('show / {{$ d-> id}}') с данными для заполнения пустого #target div (эта логика еще не завершена, поэтому в настоящее время я пытаюсь добавить более простой html переменная).

Однако всякий раз, когда я загружаю эту страницу, я получаю следующую ошибку: Невозможно завершить раздел, не запустив его заранее

ПРИМЕЧАНИЕ. Когда я удаляю следующую строку кода, страница загружается без проблем.

    $('target').@append(html); 

Здесь чего-то не хватает, как улучшить код?

0
Imran Said 15 Янв 2021 в 10:36

2 ответа

Лучший ответ

Попробуйте с этой строкой, я полагаю, что в вашей строке добавления есть синтаксическая ошибка:

    $('#target').append(html); 

Изменить: Хорошо, я проверял ваш код, поэтому здесь я собираюсь добавить свое предложение:

@if(count($chat) != 0)
  @foreach($chat as $d)

    <a href="#" class="media border-bottom-blue-grey border-bottom-lighten-5" id="link{{ $d->id }}">
    
         <div class="media-body w-100">
             <h6 class="list-group-item-heading font-medium-1 text-bold-700">{{ $d->name }}{{ $d->unread_messages }}
                 @if( $d->unread_messages > 0)
                    <span class="badge badge-pill badge-danger lighten-3">{{ $d->unread_messages }}</span>
                @endif
            </h6>
        </div>

    </a>

    <div id="target{{ $d->id }}"></div>

    <script>

     $("#link{{ $d->id }}" ).on('click', function(e) { // Bind closure to #link1's onClick event
         e.preventDefault();
         jQuery.get('show/{{ $d->id }}', function(data) { // Perform AJAX GET request
             var html = "<h1> Hello </h1>"
             $('target').append(html); 
         });
     });

     </script>

  @endforeach
@endif
2
David Vanegas 15 Янв 2021 в 08:20

Часть @append(...) интерпретируется как директива Blade, директива @append:

$('target').@append(html); 

Удалите из этого @:

$('target').append(html); 

Метод appendSection:

public function appendSection()
{
    if (empty($this->sectionStack)) {
        throw new InvalidArgumentException('Cannot end a section without first starting one.');
    }
1
lagbox 15 Янв 2021 в 08:02
65732149