我有一个包含多个<select>
元素的表单。我希望能够让PHP检索<select>
中所有选项的列表。
用户可以通过点击页面上的各种内容向<select>
添加项目。这会通过JavaScript动态地将项目添加到<select>
。
我的HTML表单的骨架:
<form action="submit.php" method="post">
<select id='list' name='items[]' multiple='multiple'>
</select>
<input type='submit' value='Save' />
</form>
我的submit.php
:
<?php
$list = $_POST["items"]; // returns 'undefined index' error
for($i = 0; $i < count($list); $i++) {
echo $list[$i] . "<br />";
}
?>
我在这个问题上一直在四处寻找,但找不到有用的东西。我尝试用POST更改所有内容,但这并没有改变任何内容。
当我var_dump($_POST)
时,我得到:
array(0) { }
我在本地计算机上使用XAMPP服务器,不确定是否会导致此问题。
感谢您的帮助。
答案 0 :(得分:0)
如果<option>
中没有<select>
个元素,或者未选择任何元素,则表单字段将不会发送到服务器。
在使用之前,应始终确保设置POST(和GET)变量:
if ( ! isset($_POST['items'])) {
die('Not set: "items"');
}
例如:
<form action="submit.php" method="post">
<select id='list' name='items[]' multiple='multiple'>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
<input type='submit' value='Save' />
</form>
<?php
if (isset($_POST['items']) and is_array($_POST['items'])) {
$list = $_POST["items"];
for($i = 0; $i < count($list); $i++) {
echo $list[$i] . "<br />";
}
} else {
die('Not set: "items"');
}
答案 1 :(得分:0)
这对我有用:
HTML:
<form action="submit.php" method="post">
<select id='list' name='items[]' multiple='multiple'>
<option value="Test1">Test 1</option>
<option value="Test2">Test 2</option>
<option value="Test3">Test 3</option>
</select>
<input type='submit' value='Save' />
</form>
PHP:
<?php
$list = $_POST["items"];
for($i = 0; $i < count($list); $i++) {
echo $list[$i] . "<br />";
}
?>