PHP эхо в Jquery скрипте - PullRequest
0 голосов
/ 17 апреля 2020

У меня проблема с отображением PHP echo из jQuery скрипта. Код отображается, но в виде простого текста. Я не хочу загружать его из PHP. Я пытался сделать все, но это не имело никакого эффекта, кроме того, которое отображает код как PHP. Добавляя вместо замены текст, HTML показывает только кавычки.

Есть ли какое-либо решение для этого?

var currentBackground = 0;
var currentNaglowek = 0;
var currentTekst = 0;

var backgrounds = [];
backgrounds[0] = 'https://via.placeholder.com/1920x360';
backgrounds[1] = 'https://via.placeholder.com/1920x360';
backgrounds[2] = 'https://via.placeholder.com/1920x360';

var naglowek = [];
naglowek[0] = "<?php echo ($language['carousel_header1']); ?>";
naglowek[1] = "<?php echo ($language['carousel_header2']); ?>";
naglowek[2] = "<?php echo ($language['carousel_header3']); ?>";

var tekst = [];
tekst[0] = "<?php echo ($language['carousel_text1']); ?>";
tekst[1] = "<?php echo ($language['carousel_text2']); ?>";
tekst[2] = "<?php echo ($language['carousel_text3']); ?>";

function changeBackground() {
  currentBackground++;
  currentNaglowek++;
  currentTekst++;

  if (currentBackground > 2)
    currentBackground = 0;
  if (currentNaglowek > 2)
    currentNaglowek = 0;
  if (currentTekst > 2)
    currentTekst = 0;

  $('#sliderBox ').fadeOut(1500, function() {
    $('#sliderTexts').html('<p>"' + naglowek[currentNaglowek] + '"</p>');
    $('#sliderTexts').html('<p>"' + tekst[currentTekst] + '"</p>');
    $('#sliderBox ').css({
      'background-image': "url('" + backgrounds[currentBackground] + "')"
    });
    $('#sliderBox ').fadeIn(1500);
  });

  setTimeout(changeBackground, 7000);
}

$(document).ready(function() {
  setTimeout(changeBackground, 7000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="sliderBox">
  <div class="sliderContent">
    <div class="container">
      <div class="row">
        <div class="col-md-8" id="sliderTexts"></div>
      </div>
    </div>
  </div>
</div>

1 Ответ

0 голосов
/ 17 апреля 2020

Чтобы выполнить PHP, он должен находиться в файле, который зарегистрирован для прохождения через PHP веб-сервером. Обычно это означает предоставление ему .php расширения файла (и не a .js расширения файла).

Поскольку PHP по умолчанию будет утверждать, что все, что он выводит, является HTML, вам также нужно переопределить это, явно указав тип содержимого:

header("Content-Type: text/javascript");

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


Вы также можете рассмотреть возможность разбить файл на части и придерживаться традиционной программы stati c JavaScript, которая получает данные из конечной точки JSON через fetch .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...