如何使用JavaScript和PHP在$ _GET处获取数组?

时间:2018-07-10 06:08:21

标签: javascript php html filter

如何获得这样的数组

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,因此每个操作(选中或取消选中)都将重定向到新页面,这是我希望的结果。谢谢您的帮助。

2 个答案:

答案 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数组时,可以忽略它)