2016-12-15 1 views
0

Ich habe 2 Tabellen: Tabellen Module enthält Modul. Modul ist eine Tabelle, die Felder enthält. Tabellen Module ist eine Tabelle von Tabellen.Smarty Anzeige von Tabellen in einer bestimmten Reihenfolge

Die andere Tabelle ist ausgewählt, die ausgewählte Felder enthält.

Module = {Module1}

Module1 = {Name, Alter, Datum, hinzufügen}

Ausgewählt = {Alter, Name, Datum}

Die Felder in ausgewählten in meinem tpl angezeigt auf diese Weise:

{foreach key=m_key item=m_label from=$Modules } 
    {foreach key=f_key item=f_label from=$m_label } 
    <option value="{$ f_key}" {if !empty($Selected) && in_array($f_key,array_map('decode_html',$Selected))}selected=""{/if}>{vtranslate($f_key, $TEST)}</option> 
    {/foreach} 
{/foreach} 

Das Display ist wie folgt: {Name, Alter, Datum}

Ich möchte die Anzeige in der gleichen Reihenfolge wie in Ausgewählt: {Alter, Name, Datum}

Haben Sie eine Idee, wie Sie dies tun?

Antwort

0
{foreach key=m_key item=m_label from=$Modules } 

    {php} 
    $m_label = !empty($Selected) ? array_merge(array_intersect($Selected, $m_label), array_diff($m_label, $Selected)) : $m_label; 
    {?php} 

    {foreach key=f_key item=f_label from=$m_label } 
     <option value="{$ f_key}" {if !empty($Selected) && in_array($f_key,array_map('decode_html',$Selected))}selected=""{/if}>{vtranslate($f_key, $TEST)}</option> 
    {/foreach} 
{/foreach} 

Ich weiß nicht, ob ich Ihre Absicht richtig verstehe. Ich hoffe, der obige Code könnte helfen.

Verwandte Themen