如何获得这样的数组
index.php?jenis=11,12,13
还是这样而不删除先前的值?
index.php?jenis=11&jenis=12&jenis=13
在我的代码中,无论我单击或执行什么操作,它都只会获取下一个$_GET
值,而不会保留前一个$_GET
值。问题是如何将上一个$_GET
和下一个$_GET
合并为一个?
这是我的代码:
HTML:
<form id="filter">
<label>Pertama </label>
<ul>
<li><input type="checkbox" onclick="jeniss();" name="jenis" value="11" <?php if ($jenis == "11") { echo "checked"; } ?> > <a> 11 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis" value="12" <?php if ($jenis == "12") { echo "checked"; } ?> > <a> 12 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis" value="13" <?php if ($jenis == "13") { echo "checked"; } ?> > <a> 13 </a> </li>
</ul>
</form>
PHP:
if (!isset($_GET['jenis'])) {
$jenis = "";
} else {
$jenis = $_GET['jenis'];
}
Javascript:
<script>
function jeniss(){
document.getElementById('filter').submit();
}
</script>
注意:我使用的是javascript,因此每个操作(选中或取消选中)都将重定向到新页面,这是我希望的结果。谢谢您的帮助。
答案 0 :(得分:2)
用[]
命名输入内容以附加多个值
name="jenis[]"
那么您应该可以使用循环访问数组
foreach($_GET['jenis'] as $jenis) {echo $jenis}
或者您可以使用in_array()函数
<li><input type="checkbox" onclick="jeniss();" name="jenis[]" value="11" <?php if (in_array("11",$_POST['jenis']) { echo "checked"; } ?> > <a> 11 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis[]" value="12" <?php if (in_array("12",$_POST['jenis']) { echo "checked"; } ?> > <a> 12 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis[]" value="13" <?php if (in_array("13",$_POST['jenis']) { echo "checked"; } ?> > <a> 13 </a> </li>
答案 1 :(得分:1)
您必须将输入值设置为GET参数的上一个+实际值。
<li><input type="checkbox" onclick="jeniss();" name="jenis" value="<?php echo $jenis.',11'?>" <?php if ($jenis == "11") { echo "checked"; } ?> > <a> 11 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis" value="<?php echo $jenis.',12'?>" <?php if ($jenis == "12") { echo "checked"; } ?> > <a> 13 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis" value="<?php echo $jenis.',13'?>" <?php if ($jenis == "13") { echo "checked"; } ?> > <a> 12 </a> </li>
这将按照您在帖子中第一次说的那样输出:,11,12,13
(第一个逗号是$jenis
为空时。当使用逗号的explodin数组时,可以忽略它)