【问题标题】:Ordering data in the table表中的排序数据
【发布时间】:2018-08-16 00:46:48
【问题描述】:

我有三个由上一个文件中上传的数据创建的表。我想在定义的位置插入数据,以便每个服务都是表中的单独记录,并且分配了单独的数量和金额。 我的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

【问题讨论】:

  • function listService() 但是你在使用 listServiceName() 之后。对我来说,有些东西没有加起来。

标签: php html arrays html-table


【解决方案1】:

那是因为你正在嵌套你的 for 循环。您为service_chcecked 中的每个项目创建&lt;tr&gt; 以及“id”和“name”&lt;td&gt;。然后为每个service_chcecked * net_price_chcecked 创建一个“价格”&lt;td&gt;。您的第三个嵌套循环为每个 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>';
    }
}

【讨论】:

    【解决方案2】:

    很难理解发生了什么,但少即是多,尽量不要在函数中混合你的数据和 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      相关资源
      最近更新 更多