Задать вопрос
@1331Doken

Почему не заменяются переменные и комментируется php код из textarea?

Вставляю этот код в textarea (на выходе хочу получать новый код верстки с замененными переменными php):

<div class="item">
        <div class="info">
            <div class="coment_ava">
                <picture>
                    <source type="image/webp" srcset="images/<?php echo $avatar; ?>.webp">
                    <img loading="lazy" src="images/<?php echo $avatar; ?>.jpg" alt="img">
                </picture>
            </div>
            <span class="name"><?php echo $name; ?> <span class="date date-2">03.12.2022</span></span>
            <div class="pg">
            <?php echo $comment; ?>
            <br>
            <picture>
                <source type="image/webp" srcset="images/<?php echo $offer; ?>.webp">
                <img loading="lazy" src="images/<?php echo $offer; ?>.jpg" alt="img">
            </picture>
            </div>
        </div>
    </div>


Получаю это:

<div class="item">
        <div class="info">
            <div class="coment_ava">
                <picture>
                    <source type="image/webp" srcset="images/<?php echo $avatar; ?>.webp">
                    <img loading="lazy" src="images/<?php echo $avatar; ?>.jpg" alt="img">
                </picture>
            </div>
            <span class="name"><!--?php echo $name; ?--> <span class="date date-2">03.12.2022</span></span>
            <div class="pg">
            <!--?php echo $comment; ?-->
            <br>
            <picture>
                <source type="image/webp" srcset="images/<?php echo $offer; ?>.webp">
                <img loading="lazy" src="images/<?php echo $offer; ?>.jpg" alt="img">
            </picture>
            </div>
        </div>
    </div>


Моя форма:

<form action="get.php" method="post" class="form col-6 offset-3 d-flex flex-column mt-5 p-3">
                <div class="col-12 text-center">
                    <img src="images/logo.svg" alt="logo" class="mb-3">
                    <h1 class="mb-3">Comment Generator</h1>
                    <a href="index.php">Создать комментарий</a>
                    <a href="generate.php">Получить комментарии</a>
                </div>
                <label class="mb-3" for="country">Выберите страну</label>
                <select class="form-control mb-3" name="country" id="country">
                    <option value="hungary">Венгрия</option>
                </select>                
                <label class="mb-3" for="type">Выберите категорию</label>
                <select class="form-control mb-3" name="type" id="type">
                    <option value="electricity">Электричество</option>
                </select>
                <textarea class="form-control mb-3" name="template" id="text" cols="30" rows="10" placeholder="Введите код"></textarea>
                <button class="btn btn-light" type="submit">Получить комментарии</button>
</form>


PHP код:

<?php
    $connect = mysqli_connect('localhost', 'root', '', 'Generator');

    if (!$connect) {
        die('Error connect to database');
    }

    $comments = mysqli_query($connect, "SELECT * FROM `Comments`");
    $comments = mysqli_fetch_all($comments);

    $names = mysqli_query($connect, "SELECT * FROM `Names`");
    $names = mysqli_fetch_all($names);

    $country = $_POST['country']; // получаем страну
    $type = $_POST['type']; // получаем категорию
    $template = $_POST['template']; // получаем комментарий из textarea

    $resultComments = array();
    $resultNames = array();    

    // отсортировываем имена по нужной стране

    foreach($names as $name) {
        if ($name[1] == $country) {
            array_push($resultNames, $name[3]);
        }
    }

    // отсортировываем нужные данные для новых комментариев

    foreach($comments as $index => $comment) {
        if ($comment[2] == $country && $comment[3] == $type) {
            array_push($resultComments, array($comment[1], $resultNames[$index], $comment[2], $comment[4]));
        }
    }

    // генерируем новые комментарии

    for ($i = 0; $i < count($resultComments); $i++) {
        $avatar = "0" . ($i + 1);
        $offer = "otz" . ($i + 1);
        $name = $resultComments[$i][1];
        $comment = $resultComments[$i][3];
        $resultCode .= $template;
    }

?>


<?php echo $resultCode; ?>
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы