<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 []=2 番目の値服务
サーバーへの PHP の解析は
$ _post ['xh'] = Array (
0 = & gt; '最初の値',
1 = & gt; $_POST[' xh'][0] は「最初の値」を取得します
通常(フォーム配列は使用しません)
サーバー側 php への POST は
$_POST['xh']=0; として解析されます
ここで影響を及ぼさないのは、文字列を接続するための演算子です。 "a"."b"="ab"
. 文字列の連結演算です
よく分かりません。 。 。参照の場合は変数の前に1つだけ付ければ良いのでしょうか?なぜここの前後に . を追加する必要があるのでしょうか? 後ろの . を削除するとエラーが報告されます。 。
echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
エコーの後には 3 つの文字列が接続されています (下の赤い文字列は二重引用符です)
最初の文字列は次のとおりです: "
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>";
echo の後に 3 つの文字列が続きます (下の赤い文字列は二重引用符です)
最初の文字列は: "
printf("<td width='200'><input type='text' name='xh[]' style='width:200px' value='%s'></td>", $_POST['xh'][$i] );