我有一个选择多个列表,其中包含一些项目。它是 ACL 的 IP 地址列表。人们可以添加/删除 IP,然后保存列表。但是,除非您选择列表中的某个项目,否则$_POST[selectName]
不包含任何值。我怎样才能做到这一点?我知道我可以用 javascript 做到这一点,但我宁愿坚持使用 PHP。
问问题
19323 次
2 回答
18
编辑/更正:您需要 JS。无法通过 POST 发送所有(选择的和未选择的)选项。您必须在提交之前以编程方式选择所有选项。
带表格的文件(file1.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>
接收 POST 的文件(file2.php):
<?php
foreach ($_POST['selectName'] as $item)
{
print "$item<br/>";
}
?>
于 2013-03-03T20:33:39.270 回答
1
为了解决这个问题,您还可以使用@Kamil 代码的 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>
于 2015-09-10T20:08:43.533 回答