0

これは私の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語以降のテキスト)が含まれます。 count).Div要素は常に文字で始まる必要があるため、その前に文字「a」を追加します。これを修正するのを手伝ってください。

注: Jqueryソリューションや提案は必要ありません。上記のコードをデバッグするだけで済みます。

4

4 に答える 4

5

への呼び出しに引用符がありませんtoggle

toggle(a0)これはの代わりに呼び出しますtoggle("a0")

これを試して :

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

このレベルの覆い隠された引用符を処理するのはいつも苦痛なので、PHPでインライン化されたJavaScriptを避けることを好みます。を使用すると、jQueryがなくてもハンドラーの追加を延期できますdocument.getElementById('...').onclick=...

于 2012-09-12T08:08:26.553 に答える
2

この行の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>";
于 2012-09-12T08:10:57.020 に答える
1
echo "<div id='a" . $i . "' style='visibility:hidden'>"; 
于 2012-09-12T08:09:52.433 に答える
1

のパラメータtoggle(a".$i.")は文字列です。文字列区切り文字を追加する必要があります。また、youtHTMLタグの属性に引用符を追加する必要があります。

echo '<div id="' . a$i . '" style="visibility:hidden">';
于 2012-09-12T08:10:24.787 に答える