![](/img/trans.png)
[英]Could not include javascript file dynamically using angular4 and Javascript
[英]Dynamically change smarty include file using Javascript
我的smarty文件中有兩個選項卡。 在tab1中,我有一個下拉菜單,其中包含城市列表。 我有基於城市的模板列表,它包含有關城市的詳細信息。 在第二個選項卡中,我應該根據下拉選項顯示相關的城市模板。
例如:下拉:
<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>
如果我在下拉菜單中選擇城市1
我應該在smarty包含文件中將tpl名稱設置為city1.tpl
<div id="tab2" class="tab-content" style="display: none; visibility: hidden; padding-top:0px">
{include file=city1.tpl}
</div>
如果我在下拉菜單中選擇城市2
我應該在smarty包含文件中將tpl名稱設置為city2.tpl
<div id="tab2" class="tab-content" style="display: none; visibility: hidden; padding-top:0px">
{include file=city2.tpl}
</div>
您可以從javascript加載網址。 所以我認為如果用戶從Dropdown1中選擇City1,你的JS將加載city1.tpl,City2將加載city2.tpl
或者您可以執行以下操作:js腳本使用帶有“city1”或“city2”的POST / GET值調用url( selected-city.php
)。 在selected-city.php
檢索selected-city.tpl
名為參數selected
和您的TPL(從POST / GET拍攝):
<div id....>
{include file=${selected}.tpl}
</div ...>
smarty是一個基於php的模板引擎,這意味着它在服務器端運行,而javascript在客戶端 (用戶的瀏覽器)上運行。 因此,在用戶實際看到您的頁面之前,智能模板已經完成處理並且已經完成了任何包含。
要實現您想要的,一種方法是包含所有文件並隱藏相應的html元素(例如display:none)。 然后,根據用戶的選擇,您將顯示您希望的元素(在您的情況下第二次下拉)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.