【问题标题】:html template if statementhtml模板if语句
【发布时间】:2011-07-10 21:34:47
【问题描述】:

PHP 代码(functions.php)

$main = $db_sql->query_array("SELECT catid,titel,subcat,startorder FROM $cat_table WHERE catid='$subcat'");
$tpl->register('category_title',stripslashes($main['titel']));
$tpl->register('category_id',$main['catid']);

所以我想添加一个 if 语句,如果 {category_id} 不是 0 则执行以下代码

<img src="{GRAFURL}/{category_id}.jpg" alt="{category_title}" width="50" height="50" border="0" align="middle" />&nbsp;{category_title}

正确的语法是什么?

还需要 html 文件的更多代码吗?

【问题讨论】:

  • HTML 作为一种标记语言没有 if-else 逻辑的概念。您使用的是模板语言吗?
  • 您是否使用任何类型的模板/服务器端语言来解析这个?现在这不是有效的 HTML...
  • @wylie 是的,我刚刚将调用信息的实际 php 代码添加到模板文件中
  • 是的,为胜利放屁,哈哈

标签: php html templates if-statement


【解决方案1】:

HTML 没有像 if 语句这样的动态特性。将 HTML 视为一种定义布局的语言 - 使用 HTML 本身无法更改

这应该可以解决问题:

<?php

  if ( false === is_empty( $category_id )) {

    echo  "<img src='{$GRAFURL}/{$category_id}.jpg' alt='{$category_title}' 
            width='50' height='50' 
            border='0' align='middle' />&nbsp;{$category_title} ";

  }

?>

如果您需要向 HTML 页面添加客户端动态功能,请查看 jQueryjQuery UI

【讨论】:

  • 您能否更新您的答案以反映原始问题的变化?即是的,他正在使用 PHP。这看起来基本正确,您需要将 HTML 包装在 PHP if 语句中。
【解决方案2】:

HTML 没有这种能力。您需要使用编程语言生成 HTML。那么语法将取决于您使用的语言。

例如在TT:

[% IF category_id %]
<img src="[% GRAFURL %]/[% category_id %].jpg" 
     alt="{category_title}" width="50"
     height="50" border="0" align="middle"
     />&nbsp;[% category_title %]
[% END %]

【讨论】:

    【解决方案3】:

    使用 javascript 生成客户端,PHP 生成服务器端。 Javascript 可以更改页面上的内容并在页面发送到客户端之后提供动态内容; PHP 可以将内容发送给用户之前确定内容(虽然它可以在事后编辑它,但要复杂得多)。

    例如,如果您想将其添加到 id 为“动态”的标签中,您可以使用:

    <html>
    <head>
    <script type="text/javascript">
    window.onload = function() {
    var img_tag = document.createElement('img');
    img_tag.src = "{GRAFURL}/{category_id}.jpg";
    img_tag.alt = "{category_title}";
    img_tag.width = 50;
    img_tag.height = 50;
    img_tag.border = 0;
    img_tag.align = "middle";
    document.getElementById("dynamic").appendChild(img_tag);
    };
    </script>
    </head>
    <body>
    <div id="dynamic">
    </div>
    <body>
    </html>
    

    不过,我强烈推荐学习 jQuery,在那里你可以更轻松、更快地完成任务。此外,您可以将大括号中的值替换为正确的值(通过 PHP 或 javascript),我不知道您在做什么。

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 2014-11-21
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 2011-02-19
      • 2016-11-26
      相关资源
      最近更新 更多