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

时间:2017-11-02 08:31:02

标签: javascript php html phalcon volt

我有一个显示数据库中项目的表。其中一个项目是描述,因此它可能会很长。我遇到的最大问题是如何在我的控制器类中顺利使用JS和HTML。

如果长度超过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();
                }
            },

2 个答案:

答案 0 :(得分:1)

  1. 加载页面后不要使用document.write。它将擦除页面
  2. 您的desc需要使用单引号并且没有回车符。
  3. 你不能在onclick中使用IIFE,除非它返回一个函数
  4. 如果您的按钮位于表单中,您将提交表单 - 它应为<button type="button" onclick="var desc='<?php echo $desc; ?>'; document.querySelector('#someContainer').innerHTML=desc;"...>
  5. 你可能意味着

     delete(whatever:any){
        if(window.confirm('Are sure you want to delete this item ?')){
        //put your delete method logic here
       }
    }
    

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

答案 1 :(得分:-1)

我找到了一种方法来做我想做的事情,使用代码阅读更多内容,从此链接中阅读更少https://codepen.io/maxds/pen/jgeoA 我在phalcon MVC中遇到麻烦的事情是,我不知道我的java脚本,以及控制器视图中的css以及我做了什么。 我刚刚使用该链接中的js到我的视图文件中,对于使用tag和tag的css也是如此。 在控制器上的函数中,我编写了以下`

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