【问题标题】:issue with 2 select dropdowns on 1 page1 页上有 2 个选择下拉菜单的问题
【发布时间】:2013-01-25 12:29:11
【问题描述】:

我在 Joomla 中有一个问题,我有一个模块可以从菜单中创建选择下拉列表。

如果我在页面上只有 1 个下拉菜单,效果很好 - 如果我通过创建从另一个菜单(即 dropdown1 和 dropdown2)拉出的模块的另一个实例来创建 2 个下拉菜单,则页面崩溃。

我想知道这是否与我的模块 default.php tmpl 文件中的以下代码有关:

<?php
// No direct access.
defined('_JEXEC') or die;
?>
<form name="SelMenFrm">
<?php if($params->get('showLabel') == 1) echo $params->get('selectLabel')."&nbsp;"; ?>
<select name="SelMenSel" class="<?php echo $class_sfx;?>" onchange="javascript:location.href=document.SelMenFrm.SelMenSel.options[document.SelMenFrm.SelMenSel.selectedIndex].value;">
<option><?php echo $params->get('topText');?></option>
<?php
foreach ($list as $i => &$item) :
    // Determine if item shoud be set as selected
    $selected = "";
    if (($item->home == 0) && ($item->id == $active_id)) $selected = "selected=\"selected\"";
    // Set indent
    if ($item->level == 1) $indent = "";
    if ($item->level == 2) $indent = "&nbsp;-&nbsp;";
    if ($item->level == 3) $indent = "&nbsp;-&nbsp;&nbsp;-&nbsp;";
    if ($item->level == 4) $indent = "&nbsp;-&nbsp;&nbsp;-&nbsp;&nbsp;-&nbsp;";
    if ($item->level == 5) $indent = "&nbsp;-&nbsp;&nbsp;-&nbsp;&nbsp;-&nbsp;&nbsp;-&nbsp;";
    if ($item->level == 6) $indent = "&nbsp;-&nbsp;&nbsp;-&nbsp;&nbsp;-&nbsp;&nbsp;-&nbsp;&nbsp;-&nbsp;";
    echo "<option ".$selected."value=\"".$item->flink."\">".$indent.$item->title."</option>";
endforeach;
?>
</select></form>

任何想法/帮助将不胜感激;)

谢谢

【问题讨论】:

    标签: php select drop-down-menu joomla html-select


    【解决方案1】:
    $indent = str_repeat("&nbsp;",($item->level>=1?($item->level-1):0));
    

    那又怎样?

    【讨论】:

    • 我已经在我的模块菜单分配中尝试了您的代码,用于“在所有页面上”而不是任何 creshes
    • 我应该在哪里以及如何实现 $indent 代码(上)...不是个人编码员 ;-)
    • 剪切这个 if ($item-&gt;level == 1) $indent = ""; if ($item-&gt;level == 2) $indent = "&amp;nbsp;-&amp;nbsp;"; if ($item-&gt;level == 3) $indent = "&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;"; if ($item-&gt;level == 4) $indent = "&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;"; if ($item-&gt;level == 5) $indent = "&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;"; if ($item-&gt;level == 6) $indent = "&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;-&amp;nbsp;"; 粘贴这个 $indent = str_repeat("&amp;nbsp;",($item-&gt;level&gt;=1?($item-&gt;level-1):0));
    • $indent 代码是否意味着我可以在一页上放置 2 个选择模块?
    【解决方案2】:

    如果您使用此代码加载模块:

    <select name="SelMenSel" class="<?php echo $class_sfx;?>" onchange="javascript:location.href=document.SelMenFrm.SelMenSel.options[document.SelMenFrm.SelMenSel.selectedIndex].value;"
    

    那么他们就不能工作了,因为他们会有相同的 id 并且 onchange 依赖 id 来识别选择:document.SelMenFrm.SelMenSel

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 2012-01-22
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2022-11-17
      相关资源
      最近更新 更多