Может ли HTML быть встроен внутри инструкции PHP "if"?
Я хотел бы встроить HTML внутри оператора PHP if, если это возможно, потому что я думаю, что HTML появится перед выполнением инструкции PHP if.
Я пытаюсь получить доступ к таблице в базе данных. Я создал раскрывающееся меню в HTML, в котором перечислены все таблицы в базе данных, и как только я выбираю таблицу из раскрывающегося списка, я нажимаю кнопку отправки.
Я использую функцию isset, чтобы увидеть, была ли нажата кнопка отправки и запустить цикл в PHP, чтобы отобразить содержимое таблицы в базе данных. Итак, на данный момент у меня есть полная таблица, но я хочу запустить еще несколько запросов в этой таблице. Отсюда причина, по которой я пытаюсь выполнить больше HTML внутри оператора if. В конечном счете, я пытаюсь либо обновить (1 или более содержимое в строке или несколько строк), либо удалить (1 или более строк) содержимое в таблице. То, что я пытаюсь сделать, это создать другое раскрывающееся меню, которое соответствует столбцу в таблице, чтобы упростить поиск в таблице и переключатели, которые соответствуют тому, хочу ли я обновлять или удалять содержимое в таблице.
Ответы
Ответ 1
<?php if($condition) : ?>
<a href="http://yahoo.com">This will only display if $condition is true</a>
<?php endif; ?>
По запросу здесь elseif и еще (вы также можете найти в документы)
<?php if($condition) : ?>
<a href="http://yahoo.com">This will only display if $condition is true</a>
<?php elseif($anotherCondition) : ?>
more html
<?php else : ?>
even more html
<?php endif; ?>
Это просто.
HTML будет отображаться только в том случае, если условие выполнено.
Ответ 2
Да,
<?php
if ( $my_name == "someguy" ) {
?> HTML GOES HERE <?php;
}
?>
Ответ 3
Да.
<? if($my_name == 'someguy') { ?>
HTML_GOES_HERE
<? } ?>
Ответ 4
Использование тегов close/open PHP не очень хорошее решение из-за двух причин: вы не можете печатать PHP-переменные в простом HTML, и это делает ваш код очень трудным для чтения (следующий блок кода начинается с конечной скобки }
, но читатель понятия не имеет, что было раньше).
Лучше использовать heredoc синтаксис. Это та же концепция, что и на других языках (например, bash).
<?php
if ($condition) {
echo <<< END_OF_TEXT
<b>lots of html</b> <i>$variable</i>
lots of text...
many lines possible, with any indentation, until the closing delimiter...
END_OF_TEXT;
}
?>
END_OF_TEXT
- ваш разделитель (это может быть в основном любой текст, такой как EOF, EOT). Все между ними считается строкой с помощью PHP, как если бы оно было в двойных кавычках, поэтому вы можете печатать переменные, но вам не нужно избегать кавычек, поэтому это очень удобно для печати атрибутов html.
Обратите внимание, что разделитель закрытия должен начинаться с начала строки, а точка с запятой должна быть размещена сразу после нее без других символов (END_OF_TEXT;
).
Heredoc с поведением строки в одинарных кавычках ('
) называется nowdoc. Внутри nowdoc не выполняется синтаксический анализ. Вы используете его так же, как heredoc, только вы помещаете разделитель открытия в одинарные кавычки - echo <<< 'END_OF_TEXT'
.
Ответ 5
Итак, если условие равно требуемому значению, тогда php-документ будет запущен "include"
и включите этот документ в текущее окно
например:
`
<?php
$isARequest = true;
if ($isARequest){include('request.html');}/*So because $isARequest is true then it will include request.html but if its not a request then it will insert isNotARequest;*/
else if (!$isARequest) {include('isNotARequest.html')}
?>
`
Ответ 6
<?php if ($my_name == 'aboutme') { ?>
HTML_GOES_HERE
<?php } ?>
Ответ 7
Я знаю, что это старый пост, но я действительно ненавижу, что есть только один ответ, который предлагает не смешивать html и php. Вместо того, чтобы смешивать контент, следует использовать системы шаблонов или сами создавать базовую систему шаблонов.
В php
<?php
$var1 = 'Alice'; $var2 = 'apples'; $var3 = 'lunch'; $var4 = 'Bob';
if ($var1 == 'Alice') {
$html = file_get_contents('/path/to/file.html'); //get the html template
$template_placeholders = array('##variable1##', '##variable2##', '##variable3##', '##variable4##'); // variable placeholders inside the template
$template_replace_variables = array($var1, $var2, $var3, $var4); // the variables to pass to the template
$html_output = str_replace($template_placeholders, $template_replace_variables, $html); // replace the placeholders with the actual variable values.
}
echo $html_output;
?>
В HTML (/path/to/file.html)
<p>##variable1## ate ##variable2## for ##variable3## with ##variable4##.</p>
Выход этого будет:
Alice ate apples for lunch with Bob.