0
我试图创建的页面是不同labtests的编辑页面。每个labtest具有不同的结果,属于它和不同的正常范围(因此Min/Max),因此这些值来自PHP中的SQL SELECT语句,然后发送给Smarty。我使用BootStrap,因此我使用X-editable进行编辑。X-editable:Smarty Loop Array
我想使用X-editable编辑这些实验测试值,但遇到了foreach语句中的问题。编辑功能适用于第一行,但不适用于以下行。我的理解是因为他们有相同的ID(I.E. a id =“”)。有没有办法解决?我对JS非常陌生,所以我很难提出解决方案。
在这里黑暗中拍摄,但我可以尝试使用PK作为id的一部分,并将数组发送到JS以循环以及使链接在JS中可编辑?虽然希望有更好的办法,但这似乎有点愚蠢。
这是我所做的。
<table class="table table-striped">
<thead>
<th>Test Type</th>
<th>Measurement Unit</th>
<th>Min. Male</th>
<th>Max. Male</th>
<th>Min. Female</th>
<th>Max. Female</th>
<th>Min. Child</th>
<th>Max. Child</th>
</thead>
{foreach from=$alltests item=alltests}
<tr>
<td><a href="#" id="valuename" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Test Type">{$alltests.valuename}</a></td>
<td><a href="#" id="Units" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Unit of Measurement">{$alltests.Units}</a></td>
<td><a href="#" id="MaleMin" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Minimum Male Range Value">{$alltests.MaleMin}</a></td>
<td><a href="#" id="MaleMax" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Maximum Male Range Value">{$alltests.MaleMax}</a></td>
<td><a href="#" id="FemaleMin" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Minimum Female Range Value">{$alltests.FemaleMin}</a></td>
<td><a href="#" id="FemaleMax" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Maximum Female Range Value">{$alltests.FemaleMax}</a></td>
<td><a href="#" id="ChildMin" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Minimum Child Range Value">{$alltests.ChildMin}</a></td>
<td><a href="#" id="ChildMax" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Maximum Child Range Value">{$alltests.ChildMax}</a></td>
</tr>
{/foreach}
{literal}
<script>
$(document).ready(function() {
$('#TestName').editable();
$('#TestPrice').editable();
$('#valuename').editable();
$('#Units').editable();
$('#MaleMin').editable();
$('#MaleMax').editable();
$('#FemaleMin').editable();
$('#FemaleMax').editable();
$('#ChildMin').editable();
$('#ChildMax').editable();
});
</script>
{/literal}
谢谢您的时间!
嘿,感谢回答。 我给它一个去,它已经使所有领域的可编辑性,但它只是保存在HTML中,并没有更新它最初拉动信息的SQL表。 我正在尝试一些奇怪的事情,看看我能否解决这个问题,因为至少这是(希望)比我以前更近一步! – user3342556
修正了它!我做了你所说的,但为每个步骤制作了div类,并在JS中定义了名称,如下所示:\t'$('。is_editable_valuename')。editable({name:'valuename'});' Thank you for你的帮助:) – user3342556