X-editable:Smarty循环数组

时间:2014-02-23 07:35:09

标签: javascript php arrays smarty x-editable

我尝试创建的页面是不同实验室的编辑页面。每个labtest都有不同的结果,它们属于不同的正常范围(因此是Min / Max),所以这些值来自PHP中的SQL SELECT语句,然后发送到Smarty。我正在使用BootStrap,因此我选择了X-editable。

我想使用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}

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用一个类而不是id?

<td><a href="#" class="is_editable" 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="#" class="is_editable" data-type="text" data-pk="{$alltests.ID}" data-url="labtest-edit-post.php" data-title="Enter Unit of Measurement">{$alltests.Units}</a></td>

等等,然后:

$('.is_editable').editable();