在HTML表中包含if语句

时间:2017-07-26 17:27:25

标签: php html if-statement html-table echo

我想在我的PHP代码中包含一个if语句,用于呈现HTML表格。输出也应该在表格行中。

echo '<table style="border:1px solid red;">',
 '<tr align="center" ><td><div class="item-font1">', $mounts['name'], '</div></td>
</tr>',
 if ($itembind == 1) {
echo '<tr align="center" ><td><div class="item-font1">Text1</div></td>
</tr>',
} elseif ($itembind== 2) {
echo '<tr align="center" ><td><div class="item-font1">Text2</div></td>
</tr>',
echo "\t";
}
 '<tr align="center" ><td><div class="item-font1">', $mounts['name'], '</div></td>
</tr>  
</table>';
?>

我试过这样,但有一些错误。

7 个答案:

答案 0 :(得分:4)

使用echo,字符串可以用逗号分隔(即,)。但是,当需要其他逻辑时,必须终止echo语句。使用分号(即;)。

echo '<table style="border:1px solid red;">',
    '<tr align="center" ><td><div class="item-font1">', $mounts['name'], 
    '</div></td>
     </tr>'; //use a semi-colon here to end the call to echo

if ($itembind == 1) { 
  

与在C或Perl中一样,PHP要求在每个语句结尾处以分号结束指令。 PHP代码块的结束标记自动表示分号;你不需要一个分号来终止PHP块的最后一行。    1

虽然将多个字符串传递给echo是可以接受的,但字符串可以连接成一个。为此,请使用dot operator

所以更新这一行(开头缺少echo):

'<tr align="center" ><td><div class="item-font1">', $mounts['name'], '</div>
</td></tr></table>';

echo '<tr align="center" ><td><div class="item-font1">'. $mounts['name']. '</div>
</td></tr></table>';

最终输出:

<?php
$mounts = ['name'=>'cat'];
$itembind = 1;
echo '<table style="border:1px solid red;">',
 '<tr align="center" ><td><div class="item-font1">', $mounts['name'], '</div></td>
</tr>';
 if ($itembind == 1) {
    echo '<tr align="center" ><td><div class="item-font1">Text1</div></td>
</tr>';
} elseif ($itembind== 2) {
    echo '<tr align="center" ><td><div class="item-font1">Text2</div></td>
</tr>';
echo "\t";
}
 echo '<tr align="center" ><td><div class="item-font1">', $mounts['name'], '</div></td>
</tr>  
</table>';
?>

查看更新代码in this playground example的演示。

1 <子> http://php.net/manual/en/language.basic-syntax.instruction-separation.php

答案 1 :(得分:1)

连接时使用.运算符。您正在使用逗号,运算符。查看您的代码: -

echo '<table style="border:1px solid red;">','<tr align="center" ><td><div class="item-font1">', $mounts['name'], '</div></td></tr>',

应该是

echo '<table style="border:1px solid red;">'.'<tr align="center" ><td><div class="item-font1">'. $mounts['name']. '</div></td></tr>'.

和其他代码相同。

答案 2 :(得分:1)

你的语法错了。您应该使用.来连接字符串,使用;来终止行。

您也可以使用双引号("),PHP将解析查找变量的字符串。例如:

$myvar = 'example';
$singleQuote = 'This is an ' . $myvar;
$doubleQuote = "This is an {$myvar}";

当你打算使用变量时,我通常会发现双引号字符串更容易。

echo '<table style="border:1px solid red;">';
echo '<tr align="center"><td><div class="item-font1">' . $mounts['name'] . '</div></td></tr>';
if ($itembind == 1) {
    echo '<tr align="center" ><td><div class="item-font1">Text1</div></td></tr>';
} elseif ($itembind== 2) {
    echo '<tr align="center" ><td><div class="item-font1">Text2</div></td></tr>';
    echo "\t";
}
'<tr align="center" ><td><div class="item-font1">' . $mounts['name'] . '</div></td></tr></table>';

答案 3 :(得分:1)

最好在插入的值上创建条件语句,但这样做的方式如下:

echo '<table style="border:1px solid red;">',
 '<tr align="center" ><td><div class="item-font1">'. $mounts['name']. '</div></td>
</tr>';
if ($itembind == 1) {
   echo '<tr align="center" ><td><div class="item-font1">Text1</div></td>
</tr>';
} elseif ($itembind== 2) {
   echo '<tr align="center" ><td><div class="item-font1">Text2</div></td></tr>';
} else {
   echo "\t";
}
echo '<tr align="center" ><td><div class="item-font1">'. $mounts['name']. '</div></td>
</tr>  
</table>';

在发布此处之前练习一两个教程并不是一个坏主意。

一些新人不会意识到的是,你可以将html拉出php一点点。同样的事情可以写成:

<?php
if ($itembind == 1) $text = 'text1';
elseif ($itembind== 2) $text = 'text2';
if(isset($text)){
   $row = '<tr align="center" >
        <td>
            <div class="item-font1">'.$text.</div>
        </td>
    </tr>
} else {
  $row = '';
}

?>
<table style="border:1px solid red;">
    <tr align="center">
        <td>
            <div class="item-font1"><?=$mounts['name']?></div>
        </td>
    </tr>
    <?=$row?>
    <tr align="center" >
        <td>
            <div class="item-font1">'<?=$mounts['name']?></div>
        </td>
    </tr>  
</table>

答案 4 :(得分:1)

您使用,代替.。还需要在;结束时添加echo

<?php

$mounts['name'] = 'yyy';
$itembind = 1;
echo '<table style="border:1px solid red;">',
 '<tr align="center" ><td><div class="item-font1">'. $mounts['name']. '</div></td>
</tr>';
 if ($itembind == 1) {
echo '<tr align="center" ><td><div class="item-font1">Text1</div></td>
</tr>';
} elseif ($itembind== 2) {
echo '<tr align="center" ><td><div class="item-font1">Text2</div></td>
</tr>';
echo "\t";
}
 '<tr align="center" ><td><div class="item-font1">'.$mounts['name'].'</div></td>
</tr>  
</table>';
?>

答案 5 :(得分:0)

$output = "<table style=\"border:1px solid red;\">";
$output .= "<tr align=\"center\"><td><div class=\"item-font1\">";
$output .= $mounts['name'];
$output .= "</div></td>";
$output .= "</tr>";
if ($itembind == 1) {
    $output .= "<tr align=\"center\"><td><div class=\"item-font1\">Text1</div></td></tr>";
} else if ($itembind== 2) {
    $output .= "<tr align=\"center\"><td><div class=\"item-font1\">Text2</div></td></tr>\t";
}
$output .= "<tr align=\"center\"><td><div class=\"item-font1\">";
$output .= $mounts['name'];
$output .= "</div></td></tr>";
$output .= "</table>";
echo $output;

答案 6 :(得分:0)

PHP中不需要写表。它会使代码变得复杂。试试这个:

<?php if(condition) { ?>

     <tr> <td>some content</td></tr>

<?php } elseif(condition) { ?>

      <tr><td>some content</td></tr>

<?php } else { ?>

      <tr><td>some content</td></tr>

<?php } ?>