我有一个使用jQuery克隆的智能模板;即单击按钮将调用jQuery,jQuery将向页面添加选择字段。但是,选择字段应该在smarty模板中动态填充。
我在下面概述了我想要实现的目标。
addProject.php
// Load supervisor list into an object and pass it to smarty
$smarty->assign_by_ref('supervisor', $supervisor->results());
$smarty->display('superusers/addProject.tpl');
超级用户/ addProject.tpl
<div>
<p class="add add-data add-another-supervisor2"><i class="sprite plus2"></i> <span>Add <b class="hide">another</b> supervsior</span></p>
</div>
<script src="js/cloneformcontrols.js"></script>
JS / cloneformcontrols.js
$("#main").on("click", ".add-data", function() {
var mytarget = $(this).closest('.clonable').find('.clone:last');
var myparent = $(this).closest('.clonable');
var filename = "../smarty/templates/default/superusers/clones/add-supervisor.tpl";
var theCloneHtml = '<div class="clone" id="cloneID' + formNameIncrement + '">';
var theCloneId = 'cloneID' + formNameIncrement;
if ($(this).hasClass('add-another-supervisor2')) {filename = "../smarty/templates/default/superusers/clones/add-another-supervisor.tpl";}
myparent.addClass('data-added');
mytarget.after($(theCloneHtml).load(filename, function() {
$(this).hide().fadeIn('slow');
updateNameAttribute(theCloneId); // need to update the name atribute or validation won't work
}));
formNameIncrement++;
});
克隆/附加另一-supervisor.tpl
<div class="standard-row add-admin-row input-row">
<label class="ib ib217"> <span class="plain-select">
<select class="inp" data-myname="supervisor[]" name="supervisor[]">
<option value="">Select one</option>
{section name="i" loop=$supervisor}
<option value="{$supervisor[i]->id}">{$supervisor[i]->name}</option>
{/section}
</select>
</span> </label>
<p class="add remove-this-data fl"><i class="sprite delete2"></i> <span> </span></p>
</div>
唯一不起作用的部分是 clones / add-another-supervisor.tpl 页面没有收到对象 $ supervisor < / strong>因此没有任何选项填充。
有谁知道如何解决这个问题?