2012-05-16 4 views
2

У меня есть следующий код, который работает точно так же, как я ожидал, чтобы:переменная Echo и HTML в PHP Оператор IF

<?php if ($a - $b < 1) 
echo $text; 
elseif ($a - $b >= 1) 
echo $a - $b; 
else 
echo $a; ?> 

Однако, теперь я тоже хочу добавить немного HTML, чтобы эхо в зависимости от результат заявления IF.

<?php if ($a - $b < 1) 
echo $text; 
elseif ($a - $b >= 1) 
echo $a - $b; 
<input type="button" value="<?php echo $button_txt; ?>" id="button" class="button" /> 
else 
echo $a; 
<input type="button" value="<?php echo $button2_txt; ?>" id="button" class="button" /> ?> 

Когда я делаю это, я получаю следующее сообщение об ошибке: Синтаксическая ошибка: синтаксическая ошибка, неожиданный «<» на линии 213 (строка 213 со ссылкой на первой линии <input> в коде выше).

Есть ли способ включить как переменные, так и HTML в эхо-часть оператора IF?

+0

Являются ли HTML '' тегами, которые должны быть частью цепочки if/else? если это так, вам также понадобится '{}' или вы получите синтаксическую ошибку в 'else'. –

ответ

2

Edit: Лучше форматирование

<?php if ($a - $b < 1): ?> 
    <?php echo $text ?> 
<?php elseif ($a - $b >= 1): ?> 
    <?php echo $a - $b ?> 
    <input type="button" value="<?php echo $button_txt ?>" id="button" class="button" /> 
<?php else: ?> 
    <input type="button" value="<?php echo $button2_txt ?>" id="button" class="button" /> 
<?php endif ?> 
0

попробовать это

<?php if ($a - $b < 1) 
echo $text; 
elseif ($a - $b >= 1) 
{ 
echo $a - $b; 
?> 
<input type="button" value="<?php echo $button_txt; ?>" id="button" class="button" /> 
<?php 
else 
{ 
echo $a; 
?> 
<input type="button" value="<?php echo $button2_txt; ?>" id="button" class="button" /> 
<?php } ?> 
0

вам нужно повторить ваши строки HTML:

<?php if ($a - $b < 1) 
echo $text; 
elseif ($a - $b >= 1) 
echo $a - $b; 
echo "<input type=\"button\" value=\"$button_txt\" id=\"button\" class=\"button\" />"; 
else 
echo $a; 
echo "<input type=\"button\" value=\"$button2_txt\" id=\"button\" class=\"button\" /> ?> 
0

Вы должны закрыть свои заявления PHP, прежде чем начать html-код, поэтому ваш код должен выглядеть примерно так:

<?php if ($a - $b < 1) 
echo $text; 
elseif ($a - $b >= 1) 
echo $a - $b; 
?> 
<input type="button" value="<?php echo $button_txt; ?>" id="button" class="button" /> 
<?php else 
echo $a; 
?> 
<input type="button" value="<?php echo $button2_txt; ?>" id="button" class="button" /> ?> 
0

PHP и HTML - это разные языки, которые интерпретируются по-разному. <input type="button"> не имеет смысла внутри PHP и фактически недействителен. PHP-код находится между <?php и ?> тегами, HTML выходит за пределы этих тегов или между кавычками (что делает его строкой).

Решение может быть:

<?php 

if ($a - $b < 1) 
    echo $text; 
elseif ($a - $b >= 1) 
{ 
    echo $a - $b; 
    echo '<input type="button" value="' . $button_txt . '" id="button" class="button" />'; 
} 
else 
{ 
    echo $a; 
    echo '<input type="button" value="' . $button2_txt . '" id="button" class="button" />'; 
} 

?> 

Обратите внимание, что фактический HTML код теперь между '' и с тех пор в PHP она рассматривается как обычный текст. Кроме того, я добавил скобки { и }: когда за if следуют несколько инструкций, скобки необходимы для указания начала и окончания инструкций, относящихся к if. То же самое относится к else.

Смежные вопросы