在OpenCart中用PHP实现html标记,怎么样?

时间:2013-11-05 06:56:58

标签: php opencart

还没有PHP技能,我刚刚学习了HTML / CSS并且认为我已经擅长它,但仍然没有使用PHP。我正在开发自己的OpenCart商店,并将其作为我的html / css的练习环境。

我已经安装了付费模块,可以将产品选项作为自定义产品字段。我已经设置了它,但我现在正在尝试修改它以满足我的需求。

目前,自定义模块具有此代码(exerpt);

<?php foreach ($field['values'] as $value) { ?>
 <?php if ($value['selected'] && !$selected) { ?>
 <?php $selected = true; ?>
 <span><?php echo $field['name']; ?></span>
 <?php } ?>
 <?php if ($value['selected'] == $value['option_value_id']) { ?>
 <?php $checkbox_value .= $value['name'] . ', '; ?> 
<?php } ?>
<?php } ?>

上面的代码在默认主题的PRODUCT CODE字段上方显示一个自定义字段,即

技术规格:Android手机,双核,4.3英寸屏幕

逗号由代码行', ';

中的代码<?php $checkbox_value .= $value['name'] . ', '; ?>输出

我想把它作为无序列表,这些代码是我到目前为止所得到的,仅基于试验和错误。

 <?php foreach ($field['values'] as $value) { ?>
 <?php if ($value['selected'] && !$selected) { ?>
 <?php $selected = true; ?>
 <span><?php echo $field['name']; ?></span>
 <?php } ?>
 <?php if ($value['selected'] == $value['option_value_id']) { ?><ul>
 <?php $checkbox_value .= $value['name'] . '</li><li>'; ?></li></ul>
 <?php } ?>
 <?php } ?>

上面的代码显示输出,如此;

技术规格:

Android手机

  • 双核
  • 4.3英寸屏幕

但我喜欢像这样输出

技术规格:

  • Android手机
  • 双核
  • 4.3英寸屏幕

更新

需要帮助来了解是否,以及foreach
我正在尝试修改演示文稿。每个值用逗号分隔(Android手机,双核,4.3英寸屏幕),选项名称为技术规格。我想将该值显示为UL列表。我几乎完成了它,如上所示。唯一的问题是,Android手机没有被包括在内。

我的代码在输出时看起来像这样; enter image description here

更新:

dljve代码的输出......

enter image description here

1 个答案:

答案 0 :(得分:2)

<ul>开头标记后面没有<li>,因此不会将第一个选项显示为列表元素。您需要在<li>后面添加<ul>

我还建议您通过回显HTML并将<?php?>标记减至最少来清理代码。

修改

好的,我认为正在发生的事情(虽然我看不到软件的其他来源)是在整个代码之后打印$checkbox_value,所以第一个和最后一个<ul><li>标签实际上会落在列表之外,这会产生与您所看到的相同的错误。

你能试试这段代码吗?这会将<ul> </ul>标记添加到$checkbox_value,并添加<li> </li>标记中包含的产品。

<?php
$checkbox_value .= "<ul>";
foreach ($field['values'] as $value)
{
    if ($value['selected'] && !$selected)
    {
        $selected = true;
        echo "<span>" . $field['name'] . "</span>";
    } 
    if ($value['selected'] == $value['option_value_id']) 
    {   
        $checkbox_value .= "<li>" . $value['name'] . "</li>";   
    } 
}
$checkbox_value .= "</ul>"; 
?>