【问题标题】:How do i get array at $_GET with javascript and php? [duplicate]如何使用 javascript 和 php 在 $_GET 处获取数组? [复制]
【发布时间】:2018-12-17 21:16:16
【问题描述】:

我怎样才能得到这样的数组

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

【问题讨论】:

  • 在 Google 中输入“php get array”即可立即找到此副本。下次请多做实际的研究工作。

标签: javascript php html filter


【解决方案1】:

使用 [] 命名您的输入以附加多个值

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>

【讨论】:

  • 抱歉打扰了。你能告诉我我的 php 的哪一部分应该用 foreach 改变或添加吗?或者你可以编辑你的答案并添加你自己的 php 代码,我只是初学者,有点困惑。感谢您的帮助
  • 在我的回答中使用最后一个sn-p,你应该被设置
【解决方案2】:

您必须将输入的值设置为 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 array for commas 时忽略它)

【讨论】:

    猜你喜欢
    • 2010-12-22
    • 2012-11-15
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多