订购表格中的数据

时间:2018-03-07 19:41:32

标签: php html arrays html-table

我有三个表来自上一个文件的上传数据。我想在定义的位置插入数据,以便每个服务都是表中的单独记录,并分配了单独的数量和金额。 我的php功能:

function listService()
{
    $service_chcecked = $_POST['service_chcecked'];
    $quantity = $_POST['quantity_chcecked'];
    $net_price = $_POST['net_price_chcecked'];
    for ($x = 0; $x < count($service_chcecked); ++$x) {
        echo '<tr><td>id:' . $x . '</td><td>name:' . $service_chcecked[$x] . '</td>';
        for ($y = 0; $y < count($net_price); ++$y) {
            echo '<td>price:' . $net_price[$y] . '</td>';
            for ($z = 0; $z < count($quantity); ++$z) {
                echo '<td>quantity:' . $quantity[$z] . '</td>';
            };
        };
        echo '</tr>';
    }
}

我的html地点:

  <div class='services'>
  <table>
    <tr>
      <th><span>NO.</span></th>
      <th><span>Service name</span></th>
      <th><span>Net price</span></th>
      <th><span>Quantity</span></th>
    </tr>
        <?php listServiceName(); ?>
    </table>
</div>

现在它以这种方式显示给我,最后重复数据:/ broken table

2 个答案:

答案 0 :(得分:0)

那是因为你正在嵌套你的for循环。您可以创建<tr>和&#34; id&#34;和&#34;名称&#34; <td>中每个项目的service_chcecked。然后你创建一个&#34;价格&#34;每个<td> * service_chcecked net_price_chcecked。而你的第三个嵌套循环创建了一个&#34;数量&#34;每个service_chcecked * net_price_chcecked * quantity_chcecked的列。这就是为什么你最终得到那个破桌子的原因。这取决于你如何收到POST数据,但如果你的三个数组总是有相同的长度,你可以在一个循环中完成所有这些:

function listService()
{
    $service_chcecked = $_POST['service_chcecked'];
    $quantity = $_POST['quantity_chcecked'];
    $net_price = $_POST['net_price_chcecked'];
    for ($x = 0; $x < count($service_chcecked); ++$x) {
        echo '<tr><td>id:' . $x . '</td><td>name:' . $service_chcecked[$x] . '</td>';
        echo '<td>price:' . $net_price[$x] . '</td>';
        echo '<td>quantity:' . $quantity[$x] . '</td>';
        echo '</tr>';
    }
}

答案 1 :(得分:0)

很难理解发生了什么,但是更少,并且尽量不要混合你的数据和你的函数里面的html会让你后来迷惑。

  <?php 
      $services = $_POST['service_checked'];
      $qtys = $_POST['quantity_checked'];
      $prices = $_POST['net_price_checked'];
  ?>
  <div class='services'>
  <table>
    <tr>
      <th>NO.</th>
      <th>Service name</th>
      <th>Net price</th>
      <th>Quantity</th>
    </tr>
    <? foreach($services as $k=>$service){?>
    <tr>
      <td><?=$k?></td>
      <td><?=$service?></td>
      <td><?=$qtys[$k]?></td>
      <td><?=$prices[$k]?></td>
    </tr>
    <? }?>
    </table>
</div>