如何在选择列表中发布所有选项?
我有一个选择多个列表,其中有几个项目。它是一个ACL的IP地址列表。人们可以添加/删除IP,然后保存列表。但是,除非您选择列表中的项目,否则$_POST[selectName]
不包含任何值。我怎样才能做到这一点?我知道我可以用JavaScript做到这一点,但我宁愿坚持PHP。如何在选择列表中发布所有选项?
编辑/更正:您需要JS。没有办法通过POST发送所有(选择和未选择)选项。您必须在提交之前以编程方式选择所有选项。接收POST(file2.php)
<script type="text/javascript">
function selectAll()
{
selectBox = document.getElementById("someId");
for (var i = 0; i < selectBox.options.length; i++)
{
selectBox.options[i].selected = true;
}
}
</script>
<form method="post" action="file2.php">
<select id="someId" name="selectName[]" multiple>
<option value="123.123.123.123">123.123.123.123</option>
<option value="234.234.234.234">234.234.234.234</option>
</select>
<input type="submit" name="submit" value=Submit onclick="selectAll();">
</form>
文件:
文件与表格(file1.php)
<?php
foreach ($_POST['selectName'] as $item)
{
print "$item<br/>";
}
?>
他希望所有可能的值都来自'multiple',而不仅仅是选定的值。 – 2013-03-03 20:37:14
@Pekka웃aaah所以也许他应该将所有这些选项设置为选中状态? yup; – Kamil 2013-03-03 20:39:23
yup;他会需要JavaScript的 – 2013-03-03 20:40:00
只是为了钉在这你也可以使用的jQuery的版本@卡米尔的代码比循环更简单:
<script type="text/javascript">
jQuery('[name="form1"]').on("submit",selectAll);
function selectAll()
{
jQuery('[name="selectName[]"] option').prop('selected', true);
}
</script>
<form name="form1" method="post" action="file2.php">
<select id="someId" name="selectName[]" multiple>
<option value="123.123.123.123">123.123.123.123</option>
<option value="234.234.234.234">234.234.234.234</option>
</select>
<input type="submit" name="submit" value=Submit onclick="selectAll();">
</form>
浏览器不会将这些值发送到PHP,您将需要使用Javascript来操作th提交过程。因此,没有PHP的唯一方法来做到这一点 – 2013-03-03 20:30:17
你见过这个? http://stackoverflow.com/questions/2407284/how-to-get-multiple-selected-values-of-select-box-in-php – Kamil 2013-03-03 20:31:56
传统的做法是使用选择多选,然后在表单提交有JavaScript选择所有选项。 – Jodes 2013-03-03 20:38:09