У меня есть проблема, когда я хочу увеличить значение с 1 и применить его к моему HTML, но я не могу использовать цикл for()
или while()
(по крайней мере, я думаю, что не могу). Я настраиваю программу электронных товаров (opencart), и моих знаний php недостаточно для решения проблемы.
Есть эта функция, которая отображает категории из магазина. Он использует переменную, которая постоянно обновляется через $var .= "value"
.
Я до сих пор знаю, сколько существует подкатегорий, но я не знаю, как применить этот диапазон к моему HTML.
Я работаю над ситуацией, подобной приведенной ниже
<ul id="cats">
<li id="cat1">Cat
<ul id="sub1">
<li>item</li>
<li>item</li>
</ul>
</li>
<li id="cat2">Cat
<ul id="sub2">
<li>item</li>
<li>item</li>
</ul>
</li>
</ul>
Понятия не имею, как увеличить количество неупорядоченных списков second . Ниже кода, где генерируются вторые неупорядоченные списки.
[..]
$cPiD = strlen($parent_id);
if ($results) {
if ($parent_id == 0) {
$output .= '<ul id="cats">';
} else {
$output .= '<ul id="sub'.$cPiD.'">';
}
}
[..]
Переменная $cPiD
содержит общее количество подкатегорий (в данном случае 2). Я хочу, чтобы эта переменная автоматически применяла правильный номер к неупорядоченному списку (поэтому примените id="sub1"
к первому неупорядоченному списку и id="sub2"
ко второму (как в моем примере выше)).
Проблема в том, что я не могу использовать цикл for()
после части else
, потому что в моем HTML я получу два <ul>
тега вместо одного.
Ниже кода PHP, где все это происходит
<code>
$category_id = array_shift($this->path);
$output = '';
$results = $this->model_catalog_category->getCategories($parent_id);
$count = 0;
$cPiD = strlen($parent_id);</p>
<p>if ($results) {
if ($parent_id == 0) {
$output .= '<ul id="cats">';
} else {
$output .= '<ul id="sub'.$cPiD.'">';
}
}</p>
<p>foreach ($results as $result) {
$count++;
if (!$current_path) {
$new_path = $result['category_id'];
$output .= '<li id="cat'.$count.'">';
} else {
$new_path = $current_path . '_' . $result['category_id'];
$output .= '<li>';
}</p>
<p>$children = '';</p>
<p>$children = $this->getCategories($result['category_id'], $new_path);</p>
<p>$output .= $result['name'];</p>
<p>$output .= $children;</p>
<p>if (!$current_path) {
$output .= '</li>';
} else {
$output .= '</li>';
}</p>
<p>}</p>
<p>if ($results) {
if ($parent_id == 0) {
$output .= '</ul>';
} else {
$output .= '</ul>';
}
}
Кто-нибудь может иметь представление, как решить эту проблему?
EDIT:
О, я пытаюсь добавить следующую конструкцию в цикл foreach()
, но это создает проблемы, когда у определенных категорий нет подкатегорий.
if (!$current_path) {
$output .= '$result['name'] . ' <ul id="sub'.$count.'">';
}else{
$output .= $result['name'];
}