1

私がこの「プロフィールページ」コードを持っているとしましょう:

<table border="1">
<tr>
<td>First Name : </td>
<td>John</td>
</tr>
<tr>
<td>Last Name : </td>
<td>Doe</td>
</tr>
<tr>
<td>Hobby : </td>
<td>Soccer</td>
</tr>
...
</table>

これらのプロファイルはデータベースから保存され、一部のフィールドはオプションです。例:趣味、ヤフーメッセンジャーID、ツイッターIDなど。

利用可能なすべての情報を効率的に表示する方法は?つまり、IFの使用は少なくなります...現在、私が行っていることは次のとおりです。

<table border="1">
<tr>
<td>First Name : </td>
<td>John</td>
</tr>
<tr>
<td>Last Name : </td>
<td>Doe</td>
</tr>

<?php
if (!empty($hobby)){
echo '<tr>
<td>Hobby : </td>
<td>'.$hobby.'</td>
</tr>';}
?>

<?php
if (!empty($YahooID)){
echo '<tr>
<td>Yahoo ID : </td>
<td>'.$YahooID.'</td>
</tr>';}
?>

...
</table>
4

3 に答える 3

4

属性 (firstName、lastName...) または列 (DB 側) を反復処理し、設定されている場合は、配列にキー/値のエントリを追加します: nameOfAttribute、valueOfAttribute。

HTML をレンダリングするときは、この配列をループします

echo '<tr><td>'.$key.' : '</td><td>'.$value+'</td></tr>';

または、

function renderIfSet($value, $title)
{
   if ($value) return '<tr><td>$title :</td><td>$value</td></tr>';
}

コードは次のようになります。

<? echo renderIfSet($hobby, "Hobby") ?>
<? echo renderIfSet($YahooID, "Yahoo ID") ?>
于 2012-11-01T16:02:50.073 に答える
4
    function someAction($data) {
        if (!empty($data['data'])) {
            return '<tr>
            <td>{$data[title]} : </td>
            <td>'.$data['data'].'</td>
            </tr>';             
        }
    }

$datas = array(
  array('data' => $YahooID, 'title' => 'YahooID'),
  .... );

foreach($datas as $k => $v) {
   echo someAction($)
}

そんな感じ

于 2012-11-01T16:06:49.073 に答える
2

関数を作成...

function checkVal($label,$value){
    if(!empty($value)){
        $row .= '<td>'.$label.'</td>';
        $row .= '<td>'.$value.'</td>';
    }
}

関数を呼び出します...

checkVal('Hobby',$hobby);
于 2012-11-01T16:04:37.767 に答える