PHP ::我正在尝试打印8x8网格

时间:2010-10-25 22:22:30

标签: php

我正在尝试在php上打印一个8x8网格,任何人都可以查看这段代码是我做错了什么

      $row = 0;
  $col = 0;

   print "<form>";
  while ($row <= 8){
      print "<tr>";
   $row++;

     while ($col <= 8){
    print "<td>"; 
    print "<input type="checkbox" name="battle" value="ships">";
    print "</td>";
    $col++;

  }


  print "</tr>";
   )
   print "</form>";

4 个答案:

答案 0 :(得分:2)

$out = "<tr>";
for($i = 0; $i < 8*8; $i++){

    if($i && $i % 8 == 0)
        $out .= "</tr><tr>";

    $out .= "<td>..</td>";
}
$out .= "</tr>";

echo $out;

答案 1 :(得分:1)

几个错误。正确的代码应该是:

$row = 0;
print "<form>";
print "<table>";
while ($row < 8){ // Counts to 8. (from 0...7 = 8 times. 0 ... 8 = 9 times)
   print "<tr>";
   $row++;
   $col = 0; // reset column to 0 each time printing one row.

   while ($col < 8){
    print "<td>"; 
    print "<input type=\"checkbox\" name=\"battle\" value=\"ships\">"; 
     // Add \ before " otherwise it will treat as the end of the quote.
    print "</td>";
    $col++;
   }

   print "</tr>";
}
print "</table>";
print "</form>";

希望这有帮助。

答案 2 :(得分:0)

使用while($row < 8)while($col < 8)(而不是<=),否则您将打印9x9表格。

使用checkboxbattleships的单引号。如果在内部使用双引号,外部引号会将表达式视为"<input type=" , checkbox, " name=", battle, " value=", ships, ">"(语法错误)。

对于语法问题,它有助于使用IDE - 浏览器中的一个好的是ideone.com。您可以启用语法突出显示。

答案 3 :(得分:0)

几个问题......一对夫妇坚持:

您正在使用条件$col <= 8。如果您的值从0开始,这将迭代9次,因为0到8是9个数字。当使用基数0并有限地计数时,总是只使用<(小于)你的最大值,因为它基本上使你的结束数减少一个,弥补了0基数。

你的最后一个右括号应该是一个右括号。您使用while启动{,因此您需要使用}而非)完成此操作。