При выводе разметки с помощью echo, часть выводится закомментированной

Рейтинг: 0Ответов: 1Опубликовано: 13.01.2023

Я хочу вывести с помощью команды echo следующее:

<ul class="drop" >
   <? include "./include/data.php" ?>
</ul>

Однако строка, в которой я подключаю data.php выводится закомментированной

<!--? include "./include/data.php" ?-->

По советам из интернета были испробованы следующие 3 варианта, но они не помогли

1) <\? include "./include/data.php" \?>
2) <~? include "./include/data.php" ~?>
3) </? include "./include/data.php" /?>

Как можно решить эту проблему?

введите сюда описание изображения

Чуть подробнее: Имеются 3 файла, index.php - страница на которой появляется popup для редактирования данных в таблице. Второй - popup.php, здесь находится код для вывода полей и данных в попап. В попапе есть кастомные выпадающие списки с которыми и возникла проблема. В них данные выводятся из таблиц бд скриптом из data.php

содержание popup.php:

    <?php
    // Тут было подключение к бд
    $ID = 1;
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli($db_host, $db_user, $db_password, $db_base); 
    $mysqli->set_charset("utf8mb4");

    $result = $mysqli->query("тут запрос"); 
    while($row = $result->fetch_assoc())
    {
      
       echo '<label class="label">ID</label>';
       echo ' <input class="form__input"  placeholder="ID" name = "ID" value="'.$row['ID'].'">';
//ниже тот самый выпадающий список
       echo ' <label class="label">Select Category</label>';
       echo ' <div class="select">
            <a href="javascript:void(0);" class="slct" name = "category">'.$row['categoryName'].'</a>
            <ul class="drop" >';
        echo '<? include "./include/data.php" ?>';
        echo '</ul>
            <input type="hidden" id="select" name = "category"/>
        </div>'; 
?>

содержание data.php:

<?php
// тут было подключение к бд
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli($db_host, $db_user, $db_password, $db_base);
    $mysqli->set_charset("utf8mb4");

    $result = $mysqli->query('SELECT category.Name FROM `category`');
    while($row = $result->fetch_assoc())
    {
        echo '<li><a class="drop__link" href="javascript:void(0);">'.$row['Name'].'</a></li>';
    }
?>

Ответы

▲ 0Принят

data.php:

<ul class="drop" >
   <? include "./include/data.php" ?>
</ul>

index.php:

<?php
  echo file_get_contents("./include/data.php");
?>

либо если вопрос оказался настолько банальным что я сразу и не подумал то возможно вы искали это?:

<?php include "./include/data.php"?>  
/*
  Если вдруг это то что вы искали - можно включить опцию 
  short_open_tag в настройках php чтоб использовать 
  сокращенную запись : <?include "./include/data.php"?>
*/

Либо:

 <?= file_get_contents("./include/data.php")?>

ниже тот самый выпадающий список:

   echo ' <label class="label">Select Category</label>';
   echo ' <div class="select">
        <a href="javascript:void(0);" class="slct" name = "category">'.$row['categoryName'].'</a>
        <ul class="drop" >';

    //неверно echo '<? include "./include/data.php" ?>';
    include "./include/data.php" //верно.

    echo '</ul>
        <input type="hidden" id="select" name = "category"/>
    </div>';