2016-11-01 52 views
0

我在HTML頁面上有一個表單,它將用戶輸入發佈到PHP,該PHP執行SQL語句以從數據庫獲取信息並以JSON格式輸出。這是我的PHP代碼來獲取JSON數據:當我提交HTML頁面的形式顯示使用PHP和MySQL創建的JSON數據

<?php 

header('Content-type:application/json'); 

$con = mysqli_connect('localhost','root','','dbname'); 

if(isset($_POST['submit'])) 
    { 
     $artist = $_POST['artist'];   

     $select = mysqli_query($con, "SELECT * FROM tblname WHERE artistName = ". $artist); 

     $rows = array(); 

     while($row = mysqli_fetch_array($select)) 
     { 
      $rows[] = $row; 
     } 

     echo json_encode($rows); 
}; 

?> 

,這是不言而喻的PHP頁面,我得到這樣的結果:

[{"0":"6","id":"6","1":"OASIS","artistName":"OASIS","2":"SOME MIGHT SAY","songTitle":"SOME MIGHT SAY","3":"1995-05-06","dateNo1":"1995-05-06"}] 

(代碼和JSON結果已被簡化爲這個問題)

而不是轉到此頁面,我希望數據很好地顯示在HTML頁面,以便用戶不會看到此數組。我不知道如何做到這一點,有什麼幫助?

謝謝!

+0

循環訪問陣列並在客戶端創建HTML。這就是我推薦的做法。使用PHP與MySQL進行交互以爲您的JavaScript AJAX代碼創建JSON是一種很好的做法。更少的數據將不得不通過網絡發送。 – PHPglue

回答

1

如果你想輸出的格式很好,爲什麼你在JSON中編碼?雖然JSON是可讀的,但並不打算作爲最終產品在屏幕上呈現。

我建議循環$ rows數組並建立一個簡單的HTML表格。當然,您可以將數據封裝在您喜歡的任何標記中,甚至可以添加CSS來按照您認爲合適的方式進行設置。這裏有一個例子讓你開始:

echo "<table>"; 
foreach($rows as $row) { 
    foreach($row as $key => $value) { 
    echo "<tr>"; 
    echo "<td>"; 
    echo $key; 
    echo "</td>"; 
    echo "<td>"; 
    echo $value; 
    echo "</td>"; 
    echo "</tr>"; 
} 
} 
echo "</table>"; 

如果你只想要一些渲染的數據,你可以簡單地迴應這些值:

foreach($rows as $row) { 
    { 
    echo "Artist:" . $row['artistName']; 
    echo "<br>"; 
    echo "Song Title:" . $row['songTitle']; 
    echo "<br>"; 
    echo "Date:" . $row['dateNo1']; 
    } 
0

有解決這個問題的兩個方面

  1. 執行從Javascript AJAX調用PHP頁面並解析更迭對HTML的迴應。

enter image description here

  • 只需迴響在PHP頁中的值或在PHP頁面添加HTML本身由Tim的建議。