Как передать данные контроллера (php) в блоки содержимого ContentBuilder?

#javascript #php #laravel

#javascript #php #laravel

Вопрос:

я купил последнюю ContentBuilder.js от innovastudio. Я интегрировал его в свою CMS и работает нормально. Теперь, когда я создал новые статические блоки, это тоже работает нормально. Но теперь я пытаюсь создавать динамические блоки с данными php, передаваемыми с контроллера при загрузке страницы, но, похоже, не могу заставить это работать. Я знаю, что php загружается раньше javascript .Но я немного застрял.

Кто-нибудь уже работал с contentbuilder.js и не мог бы кто-нибудь, пожалуйста, подсказать мне, как решить эту проблему, пожалуйста?

Я работаю в laravel 5.8, я получил элементbyid с помощью javascript и заменил значение на динамическое значение . Это работает, но только для отдельных строк, а не для коллекций.-

 <script type="text/javascript">
    jQuery(document).ready(function ($) {
       var DBaddress = '{{$settings[0]['address']}}';
       var DBnumber = '{{$settings[0]['number']}}';
       var DBpostalcode = '{{$settings[0]['postal_code']}}';
       var DBtown = '{{$settings[0]['town']}}';
       var DBtel = '{{$settings[0]['telephone']}}';
       var DBemail = '{{$settings[0]['email']}}';




        var obj = $.contentbuilder({
            container: '.container_edit',
            imageselect: 'admin/laravel-filemanager',
            cellFormat: '<div class="col-md-12"></div>',
            rowFormat: '<div class="row"></div>',
            framework: 'bootstrap',


        });

        $('#btnViewSnippets').on('click', function () {
            obj.viewSnippets();
        });

        $('#btnViewHtml').on('click', function () {
            obj.viewHtml();
        });

        /*$('#btnSave').on('click', function () {
            save(obj.html());
        });*/

       document.getElementById("address").innerHTML= DBaddress;
       document.getElementById("number").innerHTML= DBnumber;
       document.getElementById("postalcode").innerHTML= DBpostalcode;
       document.getElementById("town").innerHTML= DBtown;
       document.getElementById("tel").innerHTML= DBtel;
       document.getElementById("email").innerHTML= DBemail;

    });
</script>
  

Здесь находится раздел, в котором задается конструктор страниц :

 @section('content')
<div class="container_edit">
            {!! $page->contentBuilder !!}
        </div>
@if( basename(url()->current()) !== $page->slug)
        <div class="is-tool" style="position:fixed;width:210px;height:50px;border:none;top:250px;bottom:50px;left:auto;right:30px;text-align:right;display:block">
            <button id="btnViewSnippets" class="classic" style="width:70px;height:50px;">  Add</button>
            <button id="btnViewHtml" class="classic" style="width:70px;height:50px;">HTML</button>
            <button id="btnSave" data-id="{{$editPageDetails[0]->uuid}}" class="classic" style="width:70px;height:50px;">SAVE</button>
        </div>
@endif

@endsection
  

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

Комментарии:

1. можете ли вы показать свой html?

2. html генерируется в contentbuilder. /* Video */ { ‘thumbnail’: ‘preview/element-video.png’, ‘category’: ‘120’, ‘html’: ‘<div class=»embed-responsive embed-responsive-16by9″>’ ‘<iframe width=»560″ height=»315″ src=»//www.youtube.com/embed/P5yHEKqx86U?rel=0 «frameborder=»0″ allowfullscreen=»»></iframe>’ ‘</div>’ }, Как только я создам страницу с помощью конструктора содержимого и сохраню ее. HTML (макет) сохраняется в базе данных. И извлекаются на самой странице. Проблема не в html, а в том, как передать php в js

3. для каких блоков вы должны выполнять цикл?

4. скопировать блок не получается? Позвольте мне объяснить. Например, мне нужно зациклить этот блок: Изображение слева, текст справа, для каждой статьи в базе данных он должен принимать изображение строки базы данных, а также описание. Теперь, когда я пытаюсь это сделать, он просто показывает мою переменную (потому что javascript загружается после php)

5. @MohammedYassineCHABLI это contentbuilder, который я использую innovastudio.com/content-builder.aspx я знаю, что это трудно объяснить. Но главное, я хочу, чтобы мои php-переменные были в блоках, чтобы они были динамичными, и мне не нужно было редактировать их после установки страницы