0

画像ギャラリーがあり、画像の下に情報バーとプロジェクトのタイトルと説明が記載された閉じるボタンがあります。

ただし、問題は、タイトルと説明を空のままにした場合でも、情報バーと十字が表示されることです。タイトルと説明が空のときは、両方が存在しないようにします。if($ project1title!=='')などの後にinfobarとinfobar-close divクラスを配置することはできません。これは、プロジェクトごとにそれらを繰り返す必要があり、複数のinfobarとinfobar-closeが必要になるためです。 divクラス。

この問題を回避するにはどうすればよいですか?

<div class="infobar"><div class="infobar-close"></div>
if ($project1title !== '') if ($project1description !== '') {
echo '<span id="title"></span><span id="description"></span>';
if ($project2title !== '') if ($project2description !== '') {
echo '<span id="title"></span><span id="description"></span>'; 
if ($project3title !== '') if ($project3description !== '') {
echo '<span id="title"></span><span id="description"></span>';
if ($project4title !== '') if ($project4description !== '') {
echo '<span id="title"></span><span id="description"></span>';
</div>
4

3 に答える 3

0

projectTitles のいずれかが設定されていて、空でないかどうかを確認する必要があります

または、すべてのタイトルと説明を配列に入れて foreach を実行します...これにより、コードが節約されます

$infos = array(
1 => array('title' => 'abc', 'description' => 'blablabla'),
2 => array('title' => 'abc', 'description' => 'blablabla'),
....
);

if(is_array($infos) && count($infos) > 0){
    echo '<div class="infobar"><div class="infobar-close"></div>';
    foreach ($infos as $info)
        if(!empty($info['title']) && !empty($info['description']))
            echo '<span id="title"></span><span id="description"></span>';
}
于 2012-11-29T20:43:24.230 に答える
0

プロジェクトには配列構造を使用することをお勧めします。次のようなもの:

$projects = array();
$projects[0] = array("title"=>"Firstproj", "description"=>"Lorem ipsum");
$projects[1] = array("title"=>"Secondproj", "description"=>"Lorem ipsum");

そうすれば、配列を単純に反復処理できます。

foreach($projects as $index => $project){
    if ($project[$index]["title"] !== '' && $project[$index]["description"] !== '') {
        echo '<div class="infobar">
                  <div class="infobar-close"></div>
                  <span id="title">$project[$index]["title"]</span>
                  <span id="description">$project[$index]["description"]</span>
              </div>';
    }
}
于 2012-11-29T20:44:23.490 に答える
0

ロジックを好転させる必要があります。

  • 最初に、エコーしたいものを含む html 文字列を作成します。
  • コンテンツが見つかった場合、途中でフラグを設定します。
  • フラグが設定されている場合は、html 文字列をエコーし​​ます。

そのIDとは別に、htmlのIDは一意である必要があります。

例:

$html = '<div class="infobar"><div class="infobar-close"></div>';
$content = false;

if ($project1title !== '' && $project1description !== '')
{
  $html .= '<span id="title"></span><span id="description"></span>';
  $content = true;
}
// etc.

$html .= '</div>';

if ($content)
{
  echo $html;
}
于 2012-11-29T20:37:02.783 に答える