PHP Javascript显示/隐藏按钮不工作

PHP Javascript Show/Hide button not working

本文关键字:按钮 工作 隐藏 Javascript 显示 PHP      更新时间:2023-09-26

这是我的php代码:

<?php
require('connection.php');
$query="select title,content from blogs";
echo '<html><head>';
echo '<link rel="stylesheet" href="blog.css" />';
echo '<script type="text/javascript" src="blog.js"></script></head><body>';
$i=0;
if($result=$mysqli->query($query))
{
while($news=$result->fetch_row())
{
echo "<br /><br /><strong>". $news[0]."</strong><br /><br />";
if(strlen($news[1])>60)
{
    $d=0;
    $content=explode(" ",$news[1]);
    foreach($content as $c)
    {
        if($d<=60)
        {
            echo $c." ";
            $d++;
        }
        else
        {
            if($d==61)
            {
                echo "<div id=a$i style='visibility:hidden'>";
                echo "<a href='#' onclick='toggle(a".$i.")' style='visibility:visible'>Show/Hide</a>";
                $i++;
                $d++;
            }
            echo $c." ";
            $d++;
            if($d==count($content)+1)
            {
                echo "</div>";
            }
        }

    }
}
else
echo $news[1]."<br /><br />";
}
$result->close();
echo "</body></html>";
}
?>

这是我的JavaScript代码:

function toggle(id)
{
    //document.getElementById('mcontent').value=x++;
    //if(x%2==0)
    document.getElementById(id).style.visibility="visible";
    //else
    //document.getElementById('mcontent').style.visibility="hidden";
};

"显示-隐藏"按钮不起作用。我的策略是用显示隐藏按钮限制包含60个以上单词的文本。一旦用户点击按钮,隐藏的div就会变为可见,其中包含额外的文本(即60个单词计数后的文本)。div元素应该总是以字母开头,所以我必须在它之前附加字母"a"。请帮我解决这个问题。

注:不需要Jquery解决方案或建议。我只需要调试上面的代码

您对toggle的调用中缺少引号。

这将调用toggle(a0)而不是toggle("a0")

试试这个:

echo "<a href='#' onclick='"toggle('a".$i."')'" style='visibility:visible'>Show/Hide</a>";

由于我总是觉得处理这种级别的叠瓦引号很痛苦,所以我更喜欢避免在PHP中使用内联javascript。即使没有jQuery,也可以使用document.getElementById('...').onclick=...延迟添加处理程序。

此行的onclick属性:

echo "<a href='#' onclick='toggle(a".$i.")' style='visibility:visible'>Show/Hide</a>";

需要在toggle()的参数周围加双引号,以便浏览器将其作为onclick='toggle("a1")':接收

echo "<a href='#' onclick='toggle('"a".$i."'")' style='visibility:visible'>Show/Hide</a>";
echo "<div id='a" . $i . "' style='visibility:hidden'>"; 

toggle(a".$i.")中的参数是一个字符串。您应该添加字符串分隔符。此外,你应该在yout HTML标签中为你的属性添加引号:

echo '<div id="' . a$i . '" style="visibility:hidden">';