对于我的动态导航,我需要一些帮助,因为我还是PHP新手。 使用这些函数,此文件将数组的值传递给json和js文件。 正确的索引对于函数尤其重要。
$_js_remc->remote_copy($renaming_js_file, $renaming_js_file_to);
$_json_remc->remote_copy($renaming_jsonfile, $renaming_jsonfile_to);
if ($_js_remc->remote_is_writeable($renaming_js_file) && $_json_remc->remote_is_writeable($renaming_jsonfile)) {
$i = 10000;
$menu_string = "document.getElementById('categories_menu').innerHTML='";
for ($z = 0; $z < count($_POST['menu_lvl1_text']); $z++) {
$i = $i + 100;
$menu_string .= '<li><a href="' . $_POST['menu_lvl1_link'][$z] . '">' . htmlentities($_POST['menu_lvl1_text'][$z], ENT_QUOTES, "UTF-8") . '</a>';
$linkname_lvl1 = ($_POST['menu_lvl1_text'][$z]);
$url_lvl1 = ($_POST['menu_lvl1_link'][$z]);
$menu_list[$i] = array($linkname_lvl1 => $url_lvl1);
if (isset($_POST['menu' . $z . '_lvl2_text']) && !empty($_POST['menu' . $z . '_lvl2_text'])) {
$i = $i +1;
$menu_string .= '<ul>';
for ($zs = 0; $zs < count($_POST['menu' . $z . '_lvl2_text']); $zs++) {
$menu_string .= '<li><a href="' . $_POST['menu' . $z . '_lvl2_link'][$zs] . '">' . htmlentities($_POST['menu' . $z . '_lvl2_text'][$zs], ENT_QUOTES, "UTF-8") . '</a>';
$linkname_lvl2 = ($_POST['menu' . $z . '_lvl2_text'][$zs]);
$url_lvl2 = ($_POST['menu' . $z . '_lvl2_link'][$zs]);
$menu_list[$i] = array($linkname_lvl2 => $url_lvl2);
$i = $i + 1;
}
$menu_string .= '</ul>';
}
$menu_string .= '</li>';
}
$menu_string .= "';";
从代码中可以看出,json文件在逻辑上记录了以下值。
{
"10100": {
"Lvl_1_1": "Level_1_1"
},
"10101": {
"Lvl1_2": "Lvl1_2"
},
"10102": {
"Lvl1_3": "Lvl1_3"
},
"10203": {
"Lvl_2_1": "Lvl_2_1"
},
"10204": {
"Lvl2_2": "Lvl2_2"
}
}
问题: 当然,Sublevel(例如“10102”)会增加,但仅限于其类别,之后下一个类别shell的索引将恢复,例如“10200”。每个类别都有不同数量的子链接。
输出如下:
<li id="u_1_0">
<a href="#"><span id="i_1_0"></span></a>
<ul class="sub">
<li id="u_1_2"><a href="#"><span id="i_1_2"></span></a></li>
<li id="u_1_3"><a href="#"><span id="i_1_3"></span></a></li>
有人知道建议吗?
答案 0 :(得分:0)
如果您只想重置计数器$i
,那么您可以在内部for循环后重置计数器:
if ($_js_remc->remote_is_writeable($renaming_js_file) && $_json_remc->remote_is_writeable($renaming_jsonfile)) {
$i = 10000;
$menu_string = "document.getElementById('categories_menu').innerHTML='";
for ($z = 0; $z < count($_POST['menu_lvl1_text']); $z++) {
$i = $i + 100;
$menu_string .= '<li><a href="' . $_POST['menu_lvl1_link'][$z] . '">' . htmlentities($_POST['menu_lvl1_text'][$z], ENT_QUOTES, "UTF-8") . '</a>';
$linkname_lvl1 = ($_POST['menu_lvl1_text'][$z]);
$url_lvl1 = ($_POST['menu_lvl1_link'][$z]);
$menu_list[$i] = array($linkname_lvl1 => $url_lvl1);
if (isset($_POST['menu' . $z . '_lvl2_text']) && !empty($_POST['menu' . $z . '_lvl2_text'])) {
$oldCounter = $i;
$menu_string .= '<ul>';
for ($zs = 0; $zs < count($_POST['menu' . $z . '_lvl2_text']); $zs++) {
$i = $i + 1;
[...use $i as before...]
}
$i = $oldCounter;
$menu_string .= '</ul>';
}
$menu_string .= '</li>';
}
$menu_string .= "';";
请注意,您的ID不是唯一的。如果有100个子链接,那你就麻烦了!
但是,我不明白你的第二个代码块以及它与你的问题有什么关系。