0

計画に対してテーブル製品の構造を設定したい、そのように示したい

+------------------+---------------+---------------+
| product1         | product2      | product3      |
+------------------+---------------+---------------+
| product1plan1    | product2plan1 | product3plan1 |
+------------------+---------------+---------------+ 
| prouduct1plan2   | product2plan2 |               |
+------------------+---------------+---------------+
| product1plan3    |               |               |
+------------------+---------------+---------------+

でも今はそのように見せてくれます

  product1 | product1plan1 | product1plan2  product2 | product2plan1 | product2plan1

ここに私のコードがあります

 <table>
<thead>
     <tr>
    <?php 
       foreach( $name as $product ) {
        $c = 0;
        foreach ($product as $key ) {
            $c++;
            ?>              
       <th>
                 <?php echo $key['Product']['name']; ?>
         <?php for($i = 0; $i < sizeof( $key['ProductPlan'] ); $i++ ) { ?>
         <th class= 'packages' id = "<?php echo $key['Product']['name'], $key['ProductPlan'][$i]['product_plan_id']?>" 
           onclick = "document.getElementById('<?php echo $key['Product']['name']?>').value='<?php echo $key['ProductPlan'][$i]['product_plan_id']?>';"
                >
            <div product_name='<?php echo $key['Product']['slug']?>' class='amounts amount-<?php echo $key['Product']['slug']?>'>
               <div class='tick'>
                  <?php echo $this->Html->image('tick.png', array('width'=>'25', 'height'=>'25'));?>
              </div>
             <div class='amount'>
         <?php echo $key['ProductPlan'][$i]['name'];?> $
             </div>
          </div>            
           </th>
           <?php } ?>
       </th>
     <?php } ?>         
   <?php } ?>
</tr>
  </thead>

4

1 に答える 1

2

実際の例を見ずにこれを理解するのは少し難しいですが、質問のコードを見ると、 th タグ内に th タグがあるため、結果が表示されています。内側の th タグを div タグに置き換えると、問題が解決するはずです。

ただし、 th タグは実際にはテーブルの見出し、またはあなたの例では製品名に使用することになっています。これを行うには、2 つのループが必要です。1 つは製品名を含む表の見出しを作成するループで、もう 1 つはプランを印刷するループです (ヘッダーの下の行にある表のセルに)。

これを試して:

<table>
    <thead>
        <tr>
            <th>
                <?php 
                    foreach ($name as $product) {
                        foreach ($product as $key) {
                            echo $key['Product']['name'];
                        }
                    }
                ?>
            </th>
        </tr>
    </thead>

    <tbody>
        <tr>
            <?php 
                foreach($name as $product) {
                    $c = 0;
            ?>

            <?php 
                foreach ($product as $key) {
                $c++;
            ?>

            <td>
                <?php for($i=0;$i<sizeof($key['ProductPlan']);$i++) { ?>

                <div class   = 'packages'
                     id      = "<?php echo $key['Product']['name'],$key['ProductPlan'][$i]['product_plan_id']?>" 
                     onclick = "document.getElementById('<?php echo $key['Product']['name']?>').value='<?php echo $key['ProductPlan'][$i]['product_plan_id']?>';"
                >

                    <div product_name='<?php echo $key['Product']['slug']?>' class='amounts amount-<?php echo $key['Product']['slug']?>'>
                        <div class='tick'>
                            <?php echo $this->Html->image('tick.png', array('width'=>'25', 'height'=>'25'));?>
                        </div>

                        <div class='amount'>
                            <?php echo $key['ProductPlan'][$i]['name'];?> $
                        </div>
                    </div>
                </div>
                <?php }?>
            </td>

            <?php } ?>
            <?php } ?>
        </tr>
    </tbody>
</table>    
于 2013-02-14T06:23:39.220 に答える