2012-09-12 82 views
0

這是我的PHP代碼:PHP的Javascript顯示/隱藏按鈕不工作

<?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"; 
}; 

的顯示隱藏按鈕不working.My策略限制文本,其中包含超過60個單詞與顯示隱藏按鈕。一旦用戶單擊按鈕隱藏的div變得可見,幷包含額外的文本(即60個字以內的文字).Div元素應始終以字母開頭,所以我在此之前附加字母'a'。請幫我解決這個問題。

說明: 不需要Jquery解決方案或建議。我只需要調試上面的代碼。

+0

你得到某種錯誤的?你可以提供一個JSFiddle嗎? –

+0

當我單擊顯示/隱藏按鈕重新加載頁面但沒有顯示剩餘的文本時,我不會收到任何錯誤。我無法提供JSFiddle,因爲mysql會提取數據。 – user1633170

+0

當你有這種錯誤時,首先要做的是移除PHP部分並使用假硬編碼數據。 – Rodolphe

回答

5

您在給toggle打電話時錯過報價。

這將調用toggle(a0)而不是toggle("a0")

試試這個:

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

正如我總是覺得痛苦對付這個水平鱗片狀的報價,我更喜歡以避免在PHP內聯的JavaScript。使用document.getElementById('...').onclick=...即使沒有jQuery,也可以推遲添加處理程序。

+0

非常感謝,有效。我差點忘了。 – user1633170

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

toggle(a".$i.")中的參數是一個字符串。你應該添加字符串分隔符。 並且還,你應該在YOUT HTML標籤的報價添加到您的屬性:

echo '<div id="' . a$i . '" style="visibility:hidden">'; 
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>";