2017-07-26 5 views
1

HTMLテーブルをレンダリングするPHPコードにifステートメントを含める必要があります。出力もテーブル行になければなりません。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>'; 
?> 

これを試しましたが、多少の誤差があります。

+0

私はこのエラーになりますか? –

+0

どのような種類のエラー? – Vladislav

答えて

4

echoの場合、文字列はコンマ(つまり、,)で区切ることができます。ただし、追加のロジックが必要な場合は、echo文を終了する必要があります。そのためにセミコロン(つまり、)を使用します。 CやPerlのよう

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) { 

、PHPは、各ステートメントの最後にセミコロンで終端される命令を必要とします。 PHPコードのブロックの終了タグは自動的にセミコロンを意味します。 PHPブロックの最後の行を終了するセミコロンを持つ必要はありません。 1

がエコーする複数の文字列を渡すために許容可能であるが、文字列を1つに連結することができます。そのためには、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


http://php.net/manual/en/language.basic-syntax.instruction-separation.php

+0

ありがとうございます。それは完全に機能します。 – Robster

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>'. 

と同じでなければなりません。

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>'; 
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>'; 

練習に悪い考えではないでしょうチュートリアルまたは2つ前に投稿してください。

何人かの新しい人々が気づいていないことは、あなたがPHPからHTMLを引き出すことができるということです。これと同じ事が書かれたことができます:

<?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> 
1

あなたは,代わりの.を使用しています。またの末尾に;を追加する必要があります。

<?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>'; 
?> 
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; 
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 } ?>