Как внедрить php код в .js файл

karen12

Постоялец
Регистрация
26 Фев 2012
Сообщения
108
Реакции
4
Здравствуйте, У меня есть main.js файл, и в нем функция для динамически добавления полей ввода.
Код:
(function() {
  "use strict";
   
    $(".awards-info").on('click','.trash', function () {
        $(this).closest('.awards-cont').remove();
        return false;
    });

    $(".add-award").on('click', function () {
 
        var regcontent = '<div class="row form-row awards-cont">' +
            '<div class="col-12 col-md-5">' +
                '<div class="form-group">' +
                    '<label>Тут нужно внедрить имя поля</label>' +
                    '<input type="text" class="form-control" name="awards[]">' +
                '</div>' +
            '</div>' +
            '<div class="col-12 col-md-5">' +
                '<div class="form-group">' +
                    '<label></label>' +
                    '<input type="text" class="form-control" name="year[]">' +
                '</div>' +
            '</div>' +
            '<div class="col-12 col-md-2">' +
                '<label class="d-md-block d-sm-none d-none">&nbsp;</label>' +
                '<a href="#" class="btn btn-danger trash"><i class="bi bi-trash"></i></a>' +
            '</div>' +
        '</div>';
       
        $(".awards-info").append(regcontent);
        return false;
    });

})();
У меня сайт на codeignter 3 и мне ныжно между тегами <label></label> внедрить имя поля типа вот такого кода
Код:
<?php echo $this->lang->line('Awards'); ?>
.
Все что пробую не получается, либо скрипт перестает работать, либо не выводит имя поля.
Как правильно внедрит <?php echo ?> код в вышеуказанный код?
 

Minor

Постоялец
Регистрация
16 Авг 2012
Сообщения
258
Реакции
110
В main.js никак, файл должен формироваться php
 

Nei

Nosce te ipsum
Команда форума
Модератор
Регистрация
5 Сен 2009
Сообщения
688
Реакции
603
Можно в тексте страницы глобальную js переменную объявить и присвоить неоходимое значение этой переменной при помощи php
как-то так:
Код:
<script>
var jsVar = '<?php echo $this->lang->line('Awards'); ?>';
</script>
И потом, соответственно, в main.js использовать эту переменную.
 

akkela

Постоялец
Регистрация
17 Дек 2014
Сообщения
41
Реакции
6
Вы можете также настроить ваш веб-сервер на парсинг js файлов на выполнение php-кода.
Например в .htaccess добавляете:
AddType application/x-httpd-php .js
AddHandler x-httpd-php7 .js

<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>
Однако такое решение безусловно создаст дополнительную нагрузку на сервер.
 

Burunduk1982

Постоялец
Регистрация
26 Мар 2007
Сообщения
630
Реакции
133
Как вариант, можно генерировать ваш js код в php, где вы без проблем сможете использовать php, что-то типа:
PHP:
<?php
$name_from_php = 'Bobbie';
header('Content-Type: application/javascript');

//Вывод вашего js-скрипта
echo '<script>
Ваш JS-код...
let name_to_js = '.$name_from_php.'; //ваша переменная или выражение из пхп
Ваш JS-код...
</script>';
Этот php скрипт сгенерирует js с нужными вам данными, сгенерированными в php и его можно подключить на страницу как js-файл. Т.е., если ваш php скрипт называется jsgenerator.php, то на фронтэнде (html странице) подключаете его как обычный внешний js-скрипт. Не забываем про экранирование и все такое.
 
Сверху