还没有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手机
但我喜欢像这样输出
技术规格:
更新
需要帮助来了解是否,以及foreach
我正在尝试修改演示文稿。每个值用逗号分隔(Android手机,双核,4.3英寸屏幕),选项名称为技术规格。我想将该值显示为UL列表。我几乎完成了它,如上所示。唯一的问题是,Android手机没有被包括在内。
我的代码在输出时看起来像这样;
更新:
dljve代码的输出......
答案 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>";
?>