我有一个显示数据库中项目的表。其中一个项目是描述,因此它可能会很长。我遇到的最大问题是如何在我的控制器类中顺利使用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();
}
},
答案 0 :(得分:1)
<button type="button" onclick="var desc='<?php echo $desc; ?>';
document.querySelector('#someContainer').innerHTML=desc;"...>
你可能意味着
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;
}`