2014-02-07 67 views
0

你好,我的問題很簡單,我有一個表新聞,我有一個按鈕bt1,和一個div來顯示結果,我想從表中顯示所有行,當我點擊按鈕,我只得到第一行,我如何顯示所有結果?獲取所有數據從MySQL顯示在div中javascript javascript

<script> 
function shownews(id) { <? php 
    include('db.php'); 
    $query = mysql_query("SELECT * FROM news"); 
    while ($row = mysql_fetch_array($query)) { 
     $a = $row['news_title']; 
    } ?> 
    var ab = <? php echo json_encode($a); ?> ; 
    id.innerHTML = ab; 
} 
</script> 
<div id="results"></div> 
<button id="btn1" onclick="shownews(results)">See news</button> 
+2

您使用mysqli,MySQL是不推薦使用。 – Doggo

回答

0

您正在覆蓋$ a,因此您只會獲得最後一行。

變化

while($row=mysql_fetch_array($query)){ 
    $a=$row['news_title']; 
} 

$a = array(); 
while($row=mysql_fetch_array($query)){ 
    array_push($a, $row['news_title']); 
} 

編輯:Royal_bg是正確的 - 額外的信息:

注:如果您使用array_push()將一個元素添加到數組最好使用$ array [] =因爲這樣就沒有調用函數的開銷。 http://us2.php.net/array_push

+2

或$ a [] = $ row ['...'] –

+0

@Rayal Bg謝謝我將[]添加到$ a並且它有效 – Katyoshah

0

你在寫任何東西之前一直執行。試着寫出答案後更改右括號...

<script> 

    function shownews(id){ 

<?php 

    include ('db.php'); 
    $query=mysql_query("SELECT * FROM news"); 

    while($row=mysql_fetch_array($query)){ 
     $a=$row['news_title']; 

?> 

     var ab = <?php echo $a; ?>; 
     id.innerHTML += ab; 

<?php 

    } 

?> 

    } 
</script> 

<div id="results"></div> 
<button id="btn1" onclick="shownews(results)">See news</button> 
+0

有兩件事:json_encode不是必需的,因爲$ a只是一個字符串。這並不能解決問題,因爲'id.innerHTML = ab'將會覆蓋div中的內容。 – cbreezier

+0

好吧,你是對的。我會編輯它。 –

1

嘗試

$a = array(); 
while ($row = mysql_fetch_array($query)) { 
      $a[] = $row['news_title']; 
     } ?> 
// print array 

print_r($a); 
+0

'$ a = array();'實際上並不是必須的 - ...創建新數組的$ var []行爲。 (http://us2.php.net/array_push) – cbreezier

1

您的迴音json_encode($ A);不在你的while循環中,所以你只渲染1行。 此外,如果我明白你在做什麼,你希望你的PHP只有當你觸發你的按鈕點擊執行?這不是做這件事的方法...... php是一種服務器語言,只有你的瀏覽器才能執行javascript。

我沒有

試試這個:

<script type="text/javascript"> 
    function shownews(id) { 
     document.getElementById(id).innerHTML = document.getElementById('news').innerHTML ; 
    } 
</script> 
<div id="news" style="display:none ;"> 
<?php 
    include ('db.php'); 
    $query=mysql_query("SELECT * FROM news"); 
    while($row=mysql_fetch_array($query)){ 
    echo $row['news_title'] . '<br />' ; 
    } 
?> 
</div> 
<div id="results"></div> 
<button id="btn1" onclick="shownews('results')">See news</button> 
0
function shownews(id){ 



    <?php 
    include ('db.php'); 
    $query=mysql_query("SELECT * FROM news"); 

    while($row=mysql_fetch_array($query)){ 
    $a[]=$row['news_title']; 

    } 



    ?> 


    id.innerHTML=<?php echo json_encode($a); ?>; 

    } 
相關問題