表格标签内的HTML表单会更改表格的格式

时间:2019-02-20 16:49:19

标签: php html

我正在创建一个表来存储基于虚拟公司及其股票价值的信息。我的目标是使表格看起来正确,同时还能根据用户要购买的股票将用户重定向到单独的页面。

我目前正在使用以下代码:

PHP:

<table width = "50%" align = "center" <tr><th>Company</th><th>Price</th>

    <?php

    while ($row = mysqli_fetch_assoc($result))
    {
      $companyName = $row['companyName'];
      $price = number_format($row['price'], 2);

      echo "<tr><td align = 'left'>" .  $companyName . "</td><td align = 'right'>" . $price . "
      <form method = 'get' action = 'testing.php'><button type = 'submit' name = 'varname' value = '" . $companyName . "'>Hey</button></form>
      </td></tr>";

(我目前有个名为“嘿”的按钮,但这些按钮实际上应该是“购买”。)

这将全部重定向到测试页面,此时,根据用户按下的按钮,将显示某个公司名称。下面的代码可以做到这一点,但我的一个小问题是用户界面。这是页面上的主表:

enter image description here

与删除表中的标记时的外观相比:

enter image description here

如您所见,与第二张图片相比,第一张图片中有大量空白,我知道这是基于标签的。但是,没有表单标签,我的程序不会执行应做的事情。

我研究了其他各种帖子,说我应该将标签放在桌子外面。但是,尝试此操作时,我注意到由于在while循环中显示该表,因此无法正常工作。

我的问题是:是否可以解决此问题(即将标签放置在其他位置),还是需要解决这个问题,即显示用户选择的公司的方式完全不同。

2 个答案:

答案 0 :(得分:2)

第一个主要问题是PHP的第一行:

<table width = "50%" align = "center" <tr><th>Company</th><th>Price</th>

应该是这样,并使您的百分比符合您的特定需求。

<table width = "50%" align = "center">
     <tr>
         <th width="60%">Company</th>
         <th width="40%">Price</th>
     </tr>

默认情况下,按钮为内联块,因此除非单元格宽度不够宽,否则它们应与文本对齐。

答案 1 :(得分:1)

<form> html标记也确实会创建很多空白。通过将其保留在循环中,您可以多次创建此标签。所以:

1)从循环中排除<form method = 'get' action = 'testing.php'>(以及相应的<\form>)。这将纠正您的代码逻辑并可能解决您的设计问题。

如果您希望减少表空间,则可以将cellspacing=0 cellpadding=0聚合为<table>标记内的其他属性->请注意,打开的 table 标记在关闭之前并未关闭th和td!