单击按钮时显示更多隐藏文本,php,phalcon

Display more of a hidden text on button click, php, phalcon

我有一个 table 显示数据库中的项目。其中一项是描述,所以它可能是非常 long.The 我遇到最多问题的事情是如何在我的控制器 class.[= 中顺利使用 JS 和 HTML 12=]

如果它的长度超过 100 个字符,我希望能够显示它的一点点,以及一个看起来像“...”的按钮,如果用户单击它,它会显示修剪后的文本。我想使用 javascript 来做到这一点,这是我尝试过的,这段代码在我的控制器中,所以我只是将它们发送到视图。

问题是当我按下按钮时它没有显示任何东西,这是哪里出了问题?有些人建议使用 jquery 但我不想在其他地方编写我的 js 脚本并再次调用它,因为我不确定我将如何在 Phalcon 控制器中执行此操作。

    $this->view->tblColumns = [
            'element one',
            'element two',
            function (tablename $instance) {
                if (strlen($desc = $instance->getDescription()) > 100) {
                    return $shortDesc = substr($instance->getDescription(), 0, 100) . '
<button style="background: none;border: none" onclick="(function(){
    var desc= <?php echo
    $desc; ?>; document.write(desc) ;
})()" >...</button>';

                } else {
                    return $instance->getDescription();
                }
            },
  1. 不要在页面加载后使用 document.write。它将擦除页面
  2. 您的 desc 需要用单引号引起来并且没有回车符 returns。
  3. 你不能在 onclick 中使用 IIFE,除非它 returns 一个函数
  4. 如果您的按钮在表单中,您将提交表单 - 它应该是 type=button

你的意思可能是

<button type="button" onclick="var desc='<?php echo $desc; ?>'; 
document.querySelector('#someContainer').innerHTML=desc;"...>

但更好的方法是切换标签内的现有文本(例如 span)

我找到了一种方法来做我想做的事情,使用代码阅读更多,阅读更少 link https://codepen.io/maxds/pen/jgeoA 我在 phalcon MVC 中遇到的麻烦是,我不知道我可以在控制器的视图中使用 java-脚本和 css,这就是我所做的。 我只是将 link 中的 js 用于我的视图文件,使用标签和标签的 css 也是如此。 在控制器的函数中我写了下面的`

$this->view->tblColumns = [
            'one',
            'two',
            function(tablename $link){
            $desc=$link->getDescription();
                $html=<<<HTML
             <span span class="more"> $desc</span>
                  HTML;
                return $html;
            }`