-1

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

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

目前自定义模块有这个代码(摘录);

<?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 } ?>

上面的代码像这样显示输出;

技术规格:

安卓手机

  • 双核的
  • 4.3英寸屏幕

但我喜欢这样输出

技术规格:

  • 安卓手机
  • 双核的
  • 4.3英寸屏幕

更新:

需要帮助来了解
我是否正在尝试修改演示文稿。每个值以逗号分隔(Android 手机、双核、4.3 英寸屏幕),选项名称为技术规格。我喜欢将值呈现为 UL 列表。我几乎做到了,如上图所示。唯一的问题是,不包括 Android 手机。

我的代码输出时是这样的; 在此处输入图像描述

更新:

dljve 代码的输出...

在此处输入图像描述

4

1 回答 1

2

您的<ul>开始标签后面没有<li>,因此第一个选项不显示为列表元素。您需要<li><ul>.

<?php我还建议通过回显 HTML 并将and?>标记减少到最低限度来清理代码。

编辑:

好的,所以我认为正在发生的事情(尽管我看不到软件的其余部分源代码)是$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>"; 
?>
于 2013-11-05T07:10:24.713 回答