单击按钮时显示更多隐藏文本,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();
}
},
- 不要在页面加载后使用 document.write。它将擦除页面
- 您的 desc 需要用单引号引起来并且没有回车符 returns。
- 你不能在 onclick 中使用 IIFE,除非它 returns 一个函数
- 如果您的按钮在表单中,您将提交表单 - 它应该是
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;
}`
我有一个 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();
}
},
- 不要在页面加载后使用 document.write。它将擦除页面
- 您的 desc 需要用单引号引起来并且没有回车符 returns。
- 你不能在 onclick 中使用 IIFE,除非它 returns 一个函数
- 如果您的按钮在表单中,您将提交表单 - 它应该是
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;
}`