Правильный способ помещения всей динамической страницы в оператор If - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь создать разные результаты на динамической странице в зависимости от того, является ли страница нишей 1 или нишей 2 для страховых компаний (это обзорные страницы, одна из которых «Путешествия» (ниша 1), а другая «Pet» (ниша) 2).

Я создал простое заявление, и я могу получить вывод для печати любого заявления в зависимости от того, является ли этот страховщик Travel или Pet, так что этот бит работает

<?php 
if ($broker_details->Niche_NicheID== '1'){
echo 'THIS IS NICHE 1';
} else {
    echo 'THIS IS NOT NICHE 1'
    ;}
    ?> 

Будет печататься правильно

ЭТО НИША 1 или же ЭТО НЕ НИША 1

Но когда я пытаюсь поместить всю страницу целиком, макет показывает ошибку кодирования, я просто вырезаю и вставляю весь этот блок кода в квадратные скобки вместо «ЭТОГО НИША 1».

Ошибка в самом начале, поэтому я должен поставить скобку или апостроф или что-то не в том месте.

Это начало кода, который я хочу вставить This is the start of the Code

Это конец кода, который я хочу вставить. This is the end of the code

Я пытался поместить код в '', и это просто превращает все div в красный, кто-нибудь может помочь, как мне правильно код страницы вставить.

Спасибо

Ответы [ 3 ]

1 голос
/ 14 июня 2019

Вам необходимо указать, какая часть вашего кода является php, а какая - html.

Попробуйте что-то вроде следующего

<?php 
if ($broker_details->Niche_NicheID== '1'){ ?>

<div>I will be rendered as html</div>

<?php } else {
    echo 'THIS IS NOT NICHE 1';
}
?> 

0 голосов
/ 14 июня 2019

С общей точки зрения:

Для определения выходных данных большого файла на основе одного оператора if проще всего было бы набрать импортировать разные файлы и затем выполнить некоторые стандартные действия для отображения страницы.

Это может быть общая реализация этой идеи:

<?php

//Import one of the php files based on a variable
require_once($niche_variable ? 'niche_class1.php' : 'niche_class2.php');

//Create a new object from the imported php file
$niche_class = new NicheClassObject();

//Perform some operations on the html, such as inserting values, or getting database information
$niche_class->performOperations();

//Render is the function that outputs HTML
echo $niche_class->render();

?>

Это не единственный способ сделать это.Из всех решений важными факторами являются:

  1. Читаемость
  2. Код / организация файлов
  3. Совместимость с GIT и другими системами контроля версий
0 голосов
/ 14 июня 2019

Вероятно, кавычки и HTML-код отбрасывают его. Попробуйте поместить весь код, который вы хотите в цикле, в переменную, используя heredoc. Нравится:

$loopcode = <<<EOT
<div class = "container">...</div> etc
EOT;

Затем поместите переменную вместо кода в ваш цикл:

 <?php 
 if ($broker_details->Niche_NicheID== '1'){
 echo $loopcode;
 } 

Более длинный путь, если вы хотите увидеть код в цикле:

if ($broker_details->Niche_NicheID== '1'){
print <<< END
<div class = "container">...</div> etc.
END;     
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...