1

smartyファイルに2つのタブがあります。tab1には、都市のリストを含むドロップダウンメニューがあります。都市に基づいたテンプレートのリストがあり、都市に関する詳細が含まれています。2番目のタブで、ドロップダウンの選択に基づいて関連する都市テンプレートを表示する必要があります。

例:ドロップダウン:

<select name='city' id='city' class="medium" style="float:left" onchange="setCityTpl(this);">
<option value=''></option>
{html_options options=$city_filter selected=$city.name}
</select>

ドロップダウンメニューでCity1を選択した場合

smartyインクルードファイルのtpl名をcity1.tplとして設定する必要があります

<div id="tab2" class="tab-content" style="display: none; visibility: hidden; padding-top:0px">
{include file=city1.tpl}
</div>

ドロップダウンメニューでCity2を選択した場合

smartyインクルードファイルのtpl名をcity2.tplとして設定する必要があります

<div id="tab2" class="tab-content" style="display: none; visibility: hidden; padding-top:0px">
{include file=city2.tpl}
</div>
4

2 に答える 2

2

javascriptからURLをロードできます。したがって、ユーザーがDropdown1からCity1を選択すると、JSはcity1.tplをロードし、City2はcity2.tplをロードすると思います。

または、次のようにすることもできます。jsスクリプトは、selected-city.php「city1」または「city2」のPOST / GET値を使用してurl()を呼び出します。は、 (POST / GETからselected-city.php取得selected-city.tplした)という名前のパラメーターとtplを使用してを取得します。selected

<div id....>
{include file=${selected}.tpl}
</div ...>
于 2012-05-10T15:52:50.147 に答える
1

smartyはphpベースのテンプレートエンジンです。つまり、サーバー側で実行され、javascriptはクライアント側(ユーザーのブラウザ)で実行されます。したがって、ユーザーが実際にページを見る前に、smartyテンプレートの処理が完了し、インクルードはすでに完了しています。

目的を達成するための1つの方法は、すべてのファイルを含め、それぞれのhtml要素を非表示にすることです(たとえば、display:noneを使用)。次に、ユーザーの選択に基づいて、必要な要素を表示します(この場合は2番目のドロップダウン)

于 2012-05-10T14:55:17.557 に答える