0

在我的表格上,我有这部分:

<input type="checkbox" name="city" value="Nicosia" class="choosecity">Nicosia<br>
<input type="checkbox" name="city" value="Limassol" class="choosecity">Limassol<br>
<input type="checkbox" name="city" value="Larnaca" class="choosecity">Larnaca<br>

在我使用邮件功能的结果页面上,我想获取选中的城市。

我用这个没有结果:

foreach($_POST['city'] as $checkbox){
    echo $checkbox . ' ';
}

我在这里想念什么?

4

4 回答 4

2

使用name="city[]". 否则,您将只能提交一个城市。您可能还想使用

$cities = isset($_POST['city']) ? $_POST['city'] : array();
foreach ($cities as $city)
于 2013-08-03T19:03:07.713 回答
1

您需要将输入命名为数组name="city[]"

于 2013-08-03T19:02:29.350 回答
1

PHP 使用方括号语法将表单输入转换为数组,因此当您使用 name="education[]" 时,您将得到一个数组:

$educationValues = $_POST['education']; // Returns an array
print_r($educationValues); // Shows you all the values in the array

例如:

<p><label>Please enter your most recent education<br>
    <input type="text" name="education[]"></p>
<p><label>Please enter any previous education<br>
    <input type="text" name="education[]"></p>
<p><label>Please enter any previous education<br>
    <input type="text" name="education[]"></p>

将为您提供 $_POST['education'] 数组中的所有输入值。

在 JavaScript 中,通过 id 获取元素效率更高...

document.getElementById("education1");

id 不必与名称匹配:

<p><label>Please enter your most recent education<br>
    <input type="text" name="education[]" id="education1"></p>
于 2013-08-03T19:05:30.163 回答
0

您只需将其添加[]到输入名称中,这将创建一个以 . 开头的数组[0]。结果将如下所示:

array(
   [0] => 'Nicosia',
   [1] => 'Limassol',
   [2] => 'Larnaca',
)

的HTML:

<input type="checkbox" name="city[]" value="Nicosia" class="choosecity" />Nicosia<br>
<input type="checkbox" name="city[]" value="Limassol" class="choosecity" />Limassol<br>
<input type="checkbox" name="city[]" value="Larnaca" class="choosecity" />Larnaca<br>

PHP:

if( isset($_POST[city]) && is_array($_POST[city]) ){
   foreach($_POST[city] as $checkbox){
       echo $checkbox . ' ';
   }
}
于 2013-08-03T19:16:16.810 回答