2016-11-07 12 views
0

以下のコードに示すように、テーブル「テーブル」から作成されたドロップダウンリストがあります。その下には、ドロップダウンからのオプションの選択に応じて、必要なテーブルが用意されています。選択ドロップダウン(データベースから)でテーブルにデータを入力

どうすればいいですか?

<div class="box"> 
    <?php 
     $pdo = new PDO('mysql:host=localhost;dbname=dbname; charset=utf8', 'user', 'pass'); 
     $sql = "SELECT id, pref, nome FROM tabela GROUP BY pref,nome ORDER BY nome"; 
     $stmt = $pdo->prepare($sql); 
     $stmt->execute(); 
     $users = $stmt->fetchAll(); 
    ?> 
    <select> 
     <?php foreach($users as $user): ?> 
      <option value="<?= $user['id']; ?>"><?= $user['pref']; ?> - <?= $user['nome']; ?></option> 
     <?php endforeach; ?> 
    </select> 
    <table class="gradienttable"> 
     <thead> 
      <tr> 
       <th colspan="7" class="tabelas">tipo1</th> 
      </tr> 
      <tr> 
       <th>Tipo1</th> 
       <th>Modelo</th> 
       <th>Qtde</th> 
       <th>Tipos</th> 
       <th>Pessoas</th> 
       <th>Vazios</th> 
       <th>Porcent</th> 
      </tr> 
     </thead> 
     <tbody> 
      <?php 
       foreach ($dbh->query("SELECT *, (ocupacao)*100 as ocupacao1 FROM tabela WHERE prefixo=8510") as $row) { 
        printf(
         "<tr onmouseover='this.style.fontWeight=700;' onmouseout='this.style.fontWeight=400;'> 
          <td style='padding:8px;'>%s - %s</td> 
          <td style='padding:8px;'>%s</td> 
          <td>%s</td> 
          <td>%s</td> 
          <td>%s</td> 
          <td>%s</td> 
          <td>%s</td> 
         </tr>", 
         $row->pref, $row->nome, $row->model, $row->qtde, $row->tipos, $row->pessoas, $row->vazios, $ocupacao1 = round($row ->ocupacao1 * 100)/100 . '%'); 
       } 
      ?> 
     </tbody> 
    </table> 
</div> 

答えて

0

データを収集する方法を使用して、結果をHTMLにエコーする必要があります。

<?php foreach ($dbh->query("SELECT *, (ocupacao)*100 as ocupacao1 FROM infografico WHERE prefixo=8510") as $row) { ?> 
    <tr onmouseover='this.style.fontWeight=700;' onmouseout='this.style.fontWeight=400;'> 

    <td><?php echo $row->pref; ?></td> 
    ... 
    </tr> 

<?php } ?> 

最も可能性の高いあなたが最初のテーブルに必要なデータを収集し、その配列によって、その後、ループを必要とし、テーブルにエコーとしてあなたのアレイを形成する方が良いだろう。

+0

申し訳ありませんが、これについてあまりよく分かりません。どのように私はこれを行うことができますか? –

0

私はあなたにあなたのforeach()ステートメントを変更する必要があり、すべての最初のだと思う:私はこのもう少しきれいで読みやすい見つける

<?php foreach($users as $user) { ?> 
    <option value="<? echo $user['id']; ?>"><? echo $user['pref']; ?> - <?echo $user['nome']; ?></option> 
<?php }; ?> 

:)

次にあなたがページを有効にする必要があります。選択した行を「フィルタ」します。これは、選択値を変更するたびに選択内容をポストすることによって行うことができます(つまり、選択したものを変更するたびにフォームを作成します。 AJAXを使用してコンテンツを送信し、結果を取得することができます。

2番目のオプション(私が強くお勧めします)に進む場合は、AJAXレスポンスに基づくページコンテンツの変更に関するチュートリアルをご覧ください。私はそれのためにjQueryに行くことをお勧めします - あなたがそこにあなたを助けることができるかなりの機能を見つけるべきであるので...

+0

それは私がする方法を知らないものです! –

関連する問題