Как разбить массив результатов на два слайда? - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь разбить результат массива на два слайда.У меня около 50+ записей в моем массиве.Я хочу показать только 14 на каждом слайде / странице.Я хочу показать остальные на других слайдах / страницах.

То, что я попробовал, ниже:

<div class="mySlides fade">
    <div class='content'>
        <div class="symptoms-container">
            <?php
                                          $slideCount = 1;
                                          $symptomCount = 1;
                                      ?>
                <div class="row">
                    <?php foreach($symptoms as $id => $symptom): ?>
                        <div class="col-md-6">
                            <ul class="check-list">
                                <li>
                                    <label class="label_check" for="symptom_<?php echo $symptom['id'] ?>">
                                        <input type="checkbox" data-gender="<?php echo $symptom['gender'] ?>" id="symptom_<?php echo $symptom['id'] ?>" name="symptom[<?php echo $symptom['id'] ?>]" value="<?php echo $symptom['id'] ?>" />
                                        <?php echo $symptom['title'] ?>
                                    </label>
                                </li>
                                <ul>
                        </div>
                        <?php $symptomCount++; ?>
                            <?php endforeach; ?>
                </div>
                <!--Row END-->
        </div>
    </div>
</div>

Приведенный выше код показывает все симптомы / данные / записи на одной странице, которую я хочупервые 14 на одном слайде и вторые 14 на втором слайде и так далее.Я надеюсь, что это имеет смысл.Код слайдов:

<div class="mySlides fade">
    <div class='content'>
        First Slide
    </div>
</div>
</div>


<div class="mySlides fade">
    <div class='content'>
        This is a form and symptoms data 2
    </div>
</div>

            <div style="text-align:center">
              <span class="dot" onclick="currentSlide(1)"></span>
              <span class="dot" onclick="currentSlide(2)"></span>
              <span class="dot" onclick="currentSlide(3)"></span>
            </div><!-- Slider Next Prev Buttons End -->

JS:

var slideIndex = 1;
        showSlides(slideIndex);

        function plusSlides(n) {
            showSlides(slideIndex += n);
        }

        function currentSlide(n) {
            showSlides(slideIndex = n);
        }

        function showSlides(n) {
            var i;
            var slides = document.getElementsByClassName("mySlides");
            var dots = document.getElementsByClassName("dot");
            if (n > slides.length) {slideIndex = 1}
            if (n < 1) {slideIndex = slides.length}
            for (i = 0; i < slides.length; i++) {
                slides[i].style.display = "none";
            }
            for (i = 0; i < dots.length; i++) {
                dots[i].className = dots[i].className.replace(" active", "");
            }
            slides[slideIndex-1].style.display = "inline";
            dots[slideIndex-1].className += " active";
        }

Спасибо за ваше время.Любая помощь будет высоко оценена.дайте мне знать, если понадобятся дополнительные требования.

Большое вам спасибо.

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете разделить массив с помощью array_chunk и зациклить каждый кусок.

Общая идея:

$symptoms = range(1,50); // your array

$chunks = array_chunk($symptoms, 14); // split it to chunks of 14

foreach($chunks as $chunk){
    echo "<div class='mySlides fade'>\n<div class='content'>\n"; // the html that creates the slide
    foreach($chunk as $symptom){
        echo $symptom . "\n"; // echoes 14 symptoms
    } 
    echo "</div>\n</div>\n"; 
}

https://3v4l.org/K5smh

...