我对一些代码有三个问题:
- 如何
isset($_POST['submit'])
知道何时单击了提交按钮。我不明白这背后的机制? - 为什么每个输入元素都使用
artist[]
带有方括号的值为 的名称?我们是否在 HTML 中定义和数组? - 有人告诉我,赋予输入元素的名称值必须与赋予
$_POST
变量的名称相匹配。但在这种情况下$_POST
,使用artist
不带方括号的 with。这里发生了什么 ?
.
<html>
<head></head>
<body>
<?php
// check for submit
if (!isset($_POST['submit'])) {
// and display form
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="checkbox" name="artist[]" value="Bon Jovi">Bon Jovi
<input type="checkbox" name="artist[]" value="N'Sync">N'Sync
<input type="checkbox" name="artist" value="Boyzone">Boyzone
<input type="checkbox" name="artist" value="Britney Spears">Britney Spears
<input type="checkbox" name="artist" value="Jethro Tull">Jethro Tull
<input type="checkbox" name="artist" value="Crosby, Stills & Nash">Crosby, Stills & Nash
<input type="submit" name="submit" value="Select">
</form>
<?php
} else {
// or display the selected artists
// use a foreach loop to read and display array elements
if (is_array($_POST['artist'])) {
echo 'You selected: <br />';
foreach ($_POST['artist'] as $a) {
echo "<i>$a</i><br />";
}
} else {
echo 'Nothing selected';
}
}
?>
</body>
</html>