<html><body><form method="post"><table border="1"><tr><td width="200">学号</td><td width="200">姓名</td><td width="200">成绩</td></tr><?php for ($i = 0; $i < 5; $i++) { echo "<tr>"; echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>"; echo "<td width='200'><input type='text' name='xm[]' style='width:200px' value='".$_POST['xm'][$i]."'></td>"; echo "<td width='200'><input type='text' name='cj[]' style='width:200px' value='".$_POST['cj'][$i]."'></td>"; echo "</tr>";}?><tr><td colspan="3" align="center"><input type="submit" name="submit1" value="提交"></td></tr></table></form><?php if (isset($_POST["submit1"])) { $XH = $_POST["xh"]; $XM = $_POST["xm"]; $CJ = $_POST["cj"];}?></body></html>
. 是字符串连接运算
为什么html数组要用类似name='xh[]'是php的约定
参考
http://php.net/manual/zh/faq.html.php#faq.html.arrays
实际上浏览器POST过去的数据是这样的(位于http头下方)
xh[]=第一个值&xh[]=第二个值
到服务端php会解析为
$_POST['xh']=array(
0 => '第一个值',
1 => '第二个值'
)
所以要$_POST[‘xh’][0]会获取'第一个值'
通常情况下(没用用表单数组)
浏览器端的
POST到服务器端php会解析为
$_POST['xh']=0;
这里的.没有作用的,如一楼,是连接字符串的操作符。“a”.“b”=“ab”
. 是字符串连接运算
echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
printf("<td width='200'><input type='text' name='xh[]' style='width:200px' value='%s'></td>", $_POST['xh'][$i] );
echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
printf("<td width='200'><input type='text' name='xh[]' style='width:200px' value='%s'></td>", $_POST['xh'][$i] );