Как вставить переменные в HTML в массиве PHP?

0

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

У меня есть массив, в котором есть html-список, php перетасовывает список, чтобы эхо-случайный порядок. Внутри элементов списка в массиве я хочу включить переменную php, сейчас это то, что у меня есть:

<?php include('includes/header_topright_content.php'); ?>
<ul data-options="animation:fade; slide_number:false; pause_on_hover:false; timer_speed:5500; navigation_arrows:false; next_on_click:true; timer:true; bullets:false;" data-orbit>

<?php
    $links = array(
        '<li data-orbit-slide="headline-1"><img /><div>'.$Slide1.'</div></li>',
        '<li data-orbit-slide="headline-2"><img /><div>'.$Slide2.'</div></li>',
        '<li data-orbit-slide="headline-3"><img /><div>'.$Slide3.'</div></li>',
    );
    shuffle($links);

    foreach ($links as $link) { echo $link; }
?>
</ul>

Я мог бы иметь до 10 или даже 20 из этих слайдов. Информация, с которой связаны переменные, будет с отдельной.php-страницы, которую я включил. Информация на этой странице:

<?php
$Slide1 = "<h5>Slide 1</h5><h6>This is the content for slide 1!</h6>";
$Slide2 = "<h5>Slide 2</h5><h6>This is the content for slide 2!</h6>";
$Slide3 = "<h5>Slide 3</h5><h6>This is the content for slide 3!</h6>";
?>

Если я откажусь от идеи переменной и вставляю html непосредственно в элемент списка, она отлично работает. Если я попытаюсь поместить туда переменные, слайд будет просто пустым. Я застрял на том, куда идти отсюда, я отлично разбираюсь в html и css, но не очень хорош с php, поэтому любая помощь оценивается! Я также открыт для любых советов по форматированию и лучших практик, чем чище, тем лучше.

Заранее спасибо!

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Есть несколько осложнений относительно того, почему я ищу это сделать. Слайдер изображения на орбите не поддерживает случайный порядок, и мне было гораздо проще просто использовать php для рандомизации порядка элементов списка. Причина, по которой я хочу использовать переменные в этих элементах списка, заключается в том, что я использую cms (CouchCMS), чтобы сделать этот контент доступным для редактирования - простым решением было бы вставить редактируемые теги вокруг этого содержимого, но это сделало бы только одну страницу доступной для редактирования, и этот контент будет "включен" в заголовок каждой страницы. Поэтому я пытаюсь найти способ поместить эти переменные на отдельную страницу (я знаю "в том числе", она этого не делает, может быть, я могу связать ее со страницей, например, css или js файл?), Чтобы сделать это редактируемым, Если у кого есть идеи, я открыт!

Теги:
zurb-foundation
variables
orbit

1 ответ

2
Лучший ответ

При конкатенации строк вам также необходимо включить файл переменных перед назначением им переменных в массив. Вам также не нужно обертывать переменные PHP в кавычки при эхо.

<?php include('includes/variables.php'); ?>

<ul data-options="[orbit options go here]" data-orbit>
<?php
    $links = array(
        '<li data-orbit-slide="headline-1"><img /><div>'.$Slide1.'</div></li>',
        '<li data-orbit-slide="headline-2"><img /><div>'.$Slide2.'</div></li>',
        '<li data-orbit-slide="headline-3"><img /><div>'.$Slide3.'</div></li>',
    );
    shuffle($links);

    foreach ($links as $link) { echo $link; } //<<< notice no quotes
?>
</ul>

Редактировать:

Могу ли я сделать предложение для вашего кода, назначив массив слайдов непосредственно во внешнем файле или нет, вы сможете в конечном итоге динамически или легко добавить новые слайды в слайдер и не нуждаться в жестком коде во второй суб файл массив перед циклом. Так что-то вроде. Кроме того, перейдя на альтернативный синтаксис, вы сохраняете хорошую структуру HTML.

<?php
$slide[] = "<h5>Slide 1</h5><h6>This is the content for slide 1!</h6>";
$slide[] = "<h5>Slide 2</h5><h6>This is the content for slide 2!</h6>";
$slide[] = "<h5>Slide 3</h5><h6>This is the content for slide 3!</h6>";

shuffle($slide);
?>

<ul data-options="animation:fade; slide_number:false; pause_on_hover:false; timer_speed:5500; navigation_arrows:false; next_on_click:true; timer:true; bullets:false;" data-orbit>
<?php foreach ($slide as $key=>$value):?>
    <li data-orbit-slide="headline-<?php echo $key?>"><img /><div><?php echo $value; ?></div></li>
<?php endforeach;?>
</ul>   
  • 0
    Спасибо, это все равно не покажет содержимое переменных для меня, хотя, я не уверен, почему?
  • 0
    mrobertsdesign.ca/g2drivers - вот мой временный URL для тестирования ... пространство в самом верху посередине (между логотипом слева и похожим на календарь списком справа) должно быть ползунком контента, и технически это работает, но при использовании переменных ничего не показывает.
Показать ещё 16 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню