isset _post用于二维数组

时间:2014-11-16 21:27:00

标签: php html sql arrays dynamic-websites

<button type="submit" name="apply[<?php echo $temp['j_id']; ?>]"> Apply</button>

随机分配

$temp['j_id'];,这是唯一的。我想知道使用$ _POST和isset

在提交的页面中点击了哪个j_id按钮

点击“应用”后,需要另外一个 - 这里我想检查使用$ _POST设置了apply []的哪些值,即if(isset($_POST['apply'][]))

如何检查二维数组的$ _POST的isset

1 个答案:

答案 0 :(得分:0)

几次看完这个问题之后,我想我现在明白了。请查看我在Runable中的代码示例中解决问题的方法。

快速回答

  

如何检查二维数组$ _POST的isset?

if ( isset($_POST['apply']) && 
     isset($_POST['apply']['someuniqueid']) ) 
{
   //Do stuff
}

其中someuniqueid是按钮的ID。


更长的答案

在您的情况下,someuniqueid正是您想要的。我假设这个&#34; ID&#34;是有意义的,事先你知道所有可能的ID。在这种情况下,您需要测试每个可能的ID,直到找到匹配项。一种简单的方法是将这些ID存储在一个数组中,然后循环遍历它。

$possibleIDs = array('a', 'b', 'c', 'd');

if ( isset($_POST['apply']) ) {
    foreach ($possibleIDs as $id) {
        if ( isset($_POST['apply'][$id]) ) {
            // Do stuff
        }
    }
}

建议

但是,这是非常低效的,因为您需要创建一个包含ID的数组,然后循环遍历它以查找值。实际上,使用数组&#34; key&#34;并没有多大意义。作为&#34;值&#34;。此外,&#34;键&#34;名称可能会被转换/更改(例如,array('8' => 'foo')将转换为array(8 => 'foo')

更好的方法,恕我直言,将该ID分配给按钮值。

<button type="submit" name="apply" value="<?php echo $temp['j_id']; ?>"> Apply</button>

在接收脚本中,您的按钮ID为$_POST['apply']值。

您可以在Runable中查看此示例。请注意,仅为单击的按钮分配了值。其他按钮未提交。