2017-12-21 12 views
0

私のモデルから結果が得られました。データベースには患者データがあります。各患者は1つの結果または多くの結果を持つことができますが、ピンが一致すれば結果テーブルの最初の列をマージします。私が持っている場合の例では、現在このようになります3つのテストだった患者:それがどのように見えるのが好き行IDが一致する場合、HTMLテーブルセルをマージしますか?

PIN | Name | test ... etc 
1 | Alan | HIV .... 
1 | Alan | Chlamydia ... 
1 | Alan | Vit D ... 

何idがある:

PIN | Name | test ... etc 
    | Alan | HIV .... 
1 | Alan | Chlamydia ... 
    | Alan | Vit D ... 

アイブ氏は私のコントローラでピンをseperatesコードを持って:

foreach ($results as $result){  
    if ($result['pin'] === $last_pin){ 
     $result['pin'] = null; 
    } else { 
     $last_pin = $result['pin']; 
    } 
} 

これは、例えば、私の私の見解で所望の出力を与える: 1, 2, 3, 4代わりの1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, etc

しかし、どのように私は私のテーブルには、「プリティ」ことについて行くのですか? colspanまたはrowspanを使用しますか?私は以前にそれらを使用したことはありませんし、それを動作させることはできません!

+1

1つのピンが複数のサブアレイを持つことができるように、データアレイを構成することができます。こうすることで、各ピンのエントリを数え、それに応じて 'rowspan'属性を生成することができます。あなたの実際の '$ results'と'

'を見ることができますか? – showdev

+0

表の代わりにflexboxを使用してください。 – codeMonkey

答えて

1

rowspan属性を使用すると、複数の行にまたがって表のセルを引き伸ばすことができます。伸びたセルが侵入した行は、あたかも引き伸ばされたセルがHTML内の適切な場所に定義されているかのように、部屋を作ります。あなたの使用のために、これは、患者の最初の行が他の細胞よりも1つ多い細胞を有することを意味する。

table { border-collapse: collapse; } 
 
td { border: 1px solid black; padding: 5px; }
<table> 
 
    <thead> 
 
    <td>PIN</td> 
 
    <td>Name</td> 
 
    <td>Test</td> 
 
    </thead> 
 
    <tr> 
 
    <td rowspan="3">2101</td> 
 
    <td>Alice</td> 
 
    <td>The Mondays</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Alice</td> 
 
    <td>Corrugated Ankles</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Alice</td> 
 
    <td>Slack Tongue</td> 
 
    </tr> 
 
    <tr> 
 
    <td rowspan="2">4242</td> 
 
    <td>Bob</td> 
 
    <td>3rd Degree Sideburns</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Bob</td> 
 
    <td>King Complex</td> 
 
    </tr> 
 
</table>

あなたは、セルが貫通するように起こっている行数を知る必要があります。あなたのPIN-分離コードで、その情報を収集することができます。

foreach ($results as $result) {  
    if ($result['pin'] === $last_pin) { 
    $result['pin'] = null; 
    $top_row['rowspan'] += 1; 
    } else { 
    $last_pin = $result['pin']; 
    $top_row = $result; 
    $top_row['rowspan'] = 1; 
    } 
} 

その後$result['pin']nullであればPINのため<td>要素を作成スキップし、保存した値にrowspan属性を設定します。

+0

ありがとうございました!私が探していたもの – Sam

関連する問題