答案 0 :(得分:3)
1)删除<form>
内的<table>
。因为,不允许表单是表,tbody或tr的子元素。您可以在表单中包含整个表。您可以在表格单元格中放置一个表单。您不能在表单中包含表的一部分。有关详情,请点击this
2) <option>
没有name
属性。查看here
3)将name
提交给<select></select>
。查看here
4)由于多个值正在提交到 checkresult2.php 页面,因此您必须将名称定义为name="subj[]"
,将name="grad[]"
定义为array
类型。
5)在其余9行中显示数据的另一种方法是:在while loop
之前将query
放在那里,如下所示。
更新了代码。
<form action="checkresult2.php">
<table class="p1" bgcolor="#FFFFCC" bordercolor="#000000" align="center" width="771" border="2">
<tr>
<td><div align="center"><strong>No.</strong></div></td>
<td><div align="center"><strong>Subject Name</strong></div></td>
<td><div align="center"><strong>Grade</strong></div></td>
</tr>
<?php
for($i=1; $i<=10; $i++)
{?>
<tr>
<td width="44"><div align="center"><?php echo $i; ?></div></td>
<td width="601">
<select name="subj[]">
<option value="">--- Please choose a subject ---</option>
<?php
$result = mysql_query("SELECT * FROM spm_subject");
while($s = mysql_fetch_assoc($result))
{?>
<option value="<?php echo $s['name']; ?>"><?php echo $s["name"]; ?></option>
<?php } ?>
</select>
</td>
<td width="104"><div align="center">
<select name="grad[]">
<option value=""> </option>
<?php
$result2 = mysql_query("SELECT * FROM spm_grade");
while($g = mysql_fetch_assoc($result2))
{?>
<option value="<?php echo $g['grade']; ?>"><?php echo $g["grade"]; ?></option>
<?php } ?>
</select>
</div>
</td>
</tr>
<?php }?>
<tr>
<td colspan="3">
<div align="center">
<input type="submit" value="Submit">
</div>
</td>
</tr>
</table>
</form>
[注意: mysql _ 已弃用PHP 5.5.0
,并已在PHP 7.0.0
中删除。应使用 MySQLi 或 PDO_MySQL 扩展名。]
答案 1 :(得分:0)
您必须预先处理填充两个数组的查询:
$names = $grades = array();
for( $i=1; $i<=10; $i++ )
{
$names[] = mysql_fetch_assoc( $result );
$grades[] = mysql_fetch_assoc( $result2 );
}
然后,在我们的代码中:
<?php foreach( $names as $key => $name ) {?>
<option name="subj"><?php echo $name['name']; ?></option>
<?php } ?>
和
<?php foreach( $grades as $key => $grade ) {?>
<option name="grad"><?php echo $grade['grade']; ?></option>
<?php } ?>
mysql_fetch_assoc
从结果中获取当前行,然后'go'到下一行,因此当第一个for
循环终止时,光标已到达结果的末尾,并且 - 在下一个{{ 1}}循环,没有东西可以获取。
在PHP 5.5.0中不推荐使用