0

我有一个图片库,图片下方有一个信息栏和一个带有项目标题和描述的关闭按钮。

但问题是,如果我将标题和描述留空,信息栏和十字仍然会出现。当标题和描述为空时,我希望它们都不存在。我不能将 infobar 和 infobar-close div 类放在 if ($project1title !== '') 等之后,因为那样我必须为每个项目重复它们,然后我将拥有多个 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

你需要扭转你的逻辑:

  • 首先构建包含您要回显的内容的 html 字符串;
  • 如果找到内容,则在途中设置标志;
  • 如果设置了标志,则回显您的 html 字符串。

除了 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 回答
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 回答