我试图用PHP编写一个脚本,它会生成一个带有垂直字母表的表格。它将简单地回显从A到Z的字母,当它到达Z时,它将重置并再次从A开始。我有一个问题,因为我只能重复两次,然后所有细胞都有一些不需要的迹象。我使用他们的ASCII html代码回显这封信,其中A符号为#65,Z符号为&#90。
这是我迄今为止的代码,感谢您的帮助。
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Vertical alphabet</title>
</head>
<body>
<form method="post">
<input type="number" placeholder="COLUMNS" name="cols" />
<input type="number" placeholder="ROWS" name="rows" />
<input type="submit" value="Create table" /><br><br>
</form>
<?php
if(isset($_POST['rows']) && isset($_POST['cols'])) {
$col = $_POST['cols'];
$row = $_POST['rows'];
echo ("<table rules='all'>");
for($i = 1; $i<$row+1; $i++) {
echo ("<tr>");
for($c = 0; $c<$col; $c++) {
$letter_id = 65;
$number = ($i + ($c*$row)-1);
$letter = $number + $letter_id;
if($letter > 90) {
$number = $number - 26;
$letter = $letter - 26;
echo ("<td>". "&#" . $letter. "</td>");
} else {
echo ("<td>". "&#" . $letter. "</td>");
}
}
echo ("</tr>");
}
echo ("</table>");
}
?>
</body>
</html>
答案 0 :(得分:1)
不确定您使用$number
变量尝试了什么,但这是问题
$number = 0;
echo ("<table rules='all'>");
for($i = 1; $i<=$row; $i++) {
echo ("<tr>");
for($c = 0; $c<$col; $c++) {
$letter_id = 65;
$number = $i + ($c*$row);
$letter = $number + $letter_id;
while($letter > 90) {
$letter = $letter - 26;
}
echo ("<td>". "&#" . $letter. "</td>");
}
echo ("</tr>");
}
echo ("</table>");
<强>更新:强>
现在垂直,试试这个......
答案 1 :(得分:0)
因为$ number总是长大。
第一个A-Z,$数字在0到25之间,你进入其他情况就可以了
第二个A-Z,$编号介于26和51之间,如果是if,你可以删除26并且打印正常。
下一个$ number是52,如前所述,你进入if情况并尝试打印第27个字母表字母^^