1

こんにちは、MySQL テーブルのデータを HTML ファイルに表示したいと思います。私は動作中のPHPファイルを持っています:

<html>
    <head>
    </head>
    <body>
        <?php
        $mysqli = new mysqli("localhost","user","pass","db");
        if (mysqli_connect_errno()) {
            printf("Can't connect to SQL Server. Error Code %s\n", mysqli_connect_error($mysqli));
            exit;
        }
        $name = $_POST['name'];
        // Set the default namespace to utf8
        $mysqli->query("SET NAMES 'utf8'");
        $json   = array();
        if($result = $mysqli->query("SELECT name, device, punkte FROM freefallhighscores ORDER BY punkte DESC LIMIT 0, 50")) {
            while ($row=$result->fetch_assoc()) {
                $json[]=array(
                    'name'=>$row['name'],
                    'device'=>$row['device'],
                    'punkte'=>$row['punkte']
                );
            }
        }
        $result->close();

        header("Content-Type: text/json");
        echo json_encode(array( 'results'  =>  $json ));
        $mysqli->close();
        ?>

    </body>
</html>

PHP ファイルを実行すると、期待どおりのエコーが得られます。

{"results":[{"name":"Benane","device":"iPhone4,1","punkte":"5000"},{"name":"Tillazh","device... and so on.

このデータを HTML テーブルに表示したいと思います。そのためには、データ (JSON 変数) を HTML ファイルに渡す必要があります (おそらく $_POST 関数を使用しますか?)。これどうやってするの?XMLHttpRequest (XHR) を使用するのは適切でしょうか?

4

2 に答える 2

1

私のコードの単純なphp関数:

function json_object_to_html($json_object_string){

           $json_object=json_decode($json_object_string);
           if(!is_object($json_object)) {
               if (is_array($json_object)){
                   $result="[ <br>";
                   foreach($json_object as $json_obj){
                       $result.="<div style='margin-left:30px'>".json_object_to_html( json_encode( $json_obj ) )."</div>";

                       if(end($json_object)!=$json_obj)
                           $result.=",";
                   }
                   return $result."  ] <br>";
               }
               else
                   return json_decode($json_object_string);

           }

           $result = "";

           foreach($json_object as $key => $value){
               $str_value=json_object_to_html( json_encode($value) );
               $result.="<span><span style='font-weight: bold'>$key : </span>$str_value</span><br>";
           }

           return $result;

        }
于 2016-04-29T09:36:25.173 に答える
1

はい、このパターンを何度も使用する場合を除き、その場合でも、既に PHP からデータベース テーブルをエクスポートしており、複数のターゲット形式を使用していないため、JSON を使用する必要はありません。

最も簡単な解決策は次のようなものです。

<table><?php
foreach ($json as $k=>$v){
  echo'<tr><th>',$k,'</th><td>',$v,'</td></tr>';
}
?></table>
于 2013-08-16T23:00:18.157 に答える