php echo () не отображает выходные данные в формате html при использовании данных из handlebars

#javascript #php #laravel #handlebars.js

#javascript #php #laravel #handlebars.js

Вопрос:

когда я передаю жестко закодированную html-строку в php echo (), она обрабатывается в формате html, но когда передаются данные из handlebars, это не работает.

 
  <li style="width:33%;padding:15px">Info : <?php echo"{{{envinfo}}}"?></li>





<script type="text/javascript">
        $("#yehhua").click(function(){
          alert("The paragraph was clicked.");
        });
        $(function() {
            $('#users').DataTable({
                processing: true,
                serverSide: true,
                ajax: '{!! route('jobapps') !!}',
                buttons: [
                    'excel', 'pdf'
                ],
                columns: [
                    { data: 'name', name: 'name' },
                    {
                        "className":'details-control',
                        "orderable":false,
                        "ordeing":false,
                        "searchable":false,
                        "data":null,
                        "defaultContent":''
                    },

                    { data: 'email', name: 'email' },
                    { data: 'created_at', name: 'created_at' },
                    { data: 'updated_at', name: 'updated_at' },
                    { data: 'phone', name: 'phone' },
                    { data: 'location', name: 'location' },
                    { data: 'envinfo', name: 'envinfo' }
                ]
            });

        });


            $('#users').on('click','td.details-control' ,function () {
                var tr = $(this).closest('tr');
                var row = table.row(tr);
                if ( row.child.isShown() ) {
                    row.child.hide();
                    tr.removeClass('shown');
                 }
                else {
                        row.child( template(row.data()) ).show();
                    tr.addClass('shown');
                }
            });


      var template = Handlebars.compile($('#details-template').html());


    </script>
  

перепробовал множество способов эхо-отображения строки, даже пытался сохранить ее в переменной, сначала используя эту переменную в echo()

мой вывод

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

1. PHP — это язык на стороне сервера, а handlebar — это фреймворк javascript, который работает на стороне клиента. поэтому echo не получит переменную из handlebars.

2. @SaineshMamgain ок 👍🏻

3. используйте echo "{{{"."envinfo"."}}}" . Но это приведет только к печати заполнителя handlebars в html, НЕ будет оценивать его, поскольку PHP находится на стороне сервера, в то время как handlebars выполняется на стороне клиента

Ответ №1:

handlebar — это фреймворк javascript, и ясно видно, что данные этого handlebar представлены в формате json. вам необходимо проанализировать их перед использованием с php