-1

我从我的数据库中检索评论。如果用户单击“devam”链接,我希望他/她可以看到完整的评论。

为此,我编写了以下代码。我使用template_lite,如果评论的字符数大于 95,它会被截断。使用下面的代码,当我单击“devam”链接时,它会显示更长的评论,但只有第一个。为什么?怎么了?

foreach value=users from=$comment}
    <tr>
        <td>{$users.ADD_DATE}</td>
        <td>{$users.NAME}</td>
        {if $users.COMMENT|count_characters > 95}
            <td><span id="comment12kisa">{$users.COMMENT|truncate:95:"..."}
                </span><a href="" onclick="$('#comment12kisa').html($('#comment12uzun').html());return false;">devami</a></td>
        {else}
            <td><span id="comment12uzun">{$users.COMMENT}</span></td>
        {/if}
        <td><center><input type="checkbox" name="checkComment[]" value={$users.ID} /></center></td>
    </tr>

需要一个唯一的ID,

有什么问题:

 {foreach value=users from=$comment}
     <tr>
         <td>{$users.ADD_DATE}</td>
         <td>{$users.NAME}</td>
         {if $users.COMMENT|count_characters > 95}
             <td><span id="comment12kisa_{$users.COMMENT.id}">{$users.COMMENT|truncate:95:"..."}
             </span><a href="" onclick="$('#comment12kisa_{$users.COMMENT.id}').html($('#comment12kisaa_{$users.COMMENT.id}').html());return false;">devami</a></td>
         {else}
             <td><span id="comment12kisaa_{$users.COMMENT.id}">{$users.COMMENT}</span></td>
         {/if}
         <td><center><input type="checkbox" name="checkComment[]" value={$users.ID} /></center></td>
     </tr>
 {/foreach}
4

3 回答 3

1

因为您的每个跨度都有一个 id。作为解决方案,您可以添加comment.id到跨度,例如:

<span id="comment12kisa_{$users.COMMENT.id}">
    {$users.COMMENT|truncate:95:"..."}
</span>

当然,您还需要在 JavaScript 代码中对其进行更改。

于 2012-03-28T20:19:45.753 回答
1

您需要将 COMMENT 的全部值放入隐藏元素中,然后显示出来。目前,您只在 HTML 中生成截断版本。

{if $users.COMMENT|count_characters > 95}
    <td><span id="comment12kisa">{$users.COMMENT|truncate:95:"..."}
    </span>
    <span id="comment12uzun" style="display"none">{$users.COMMENT}</span> <-- you need THIS
    <a href="" onclick="$('#comment12kisa').html($('#comment12uzun').html());return false;">devami</a></td>
{else}
于 2012-03-28T20:17:52.270 回答
0

问题是您只有评论的截断版本或完整版本,而不是两者。如果评论超过 95 个字符,那么您需要将完整版本存储在某处,并在用户单击链接时显示它。

    {if $users.COMMENT|count_characters > 95}
        <td>
            <span id="comment12kisa">{$users.COMMENT|truncate:95:"..."}</span>
            <a href="" onclick="$('#comment12kisa').html($('#comment12uzun').html());return false;">devamı</a>
            <span id="comment12uzun" style="display:none">{$users.COMMENT}</span>
        </td>
    {else}
        <td>
            <span id="comment12uzun">{$users.COMMENT}</span>
        </td>
    {/if}
于 2012-03-28T20:21:06.100 回答