如何从复选框中检索信息?

时间:2009-03-22 14:58:52

标签: php checkbox

我的问题有点复杂。 (我使用PHP)

我有两个数组,(简单数组array [0] = string,array [1] = string ...) 好的,现在我将在网页中显示两个数组的内容。 第一个数组包含名称,第二个图像包含URL。

图片和名称已经显示(我的问题不在这里)。

但是现在我想做其他事情,在每个图像附近添加一个复选框,默认情况下这些复选框是活动的。好的,现在用户可以取消选中一些收件箱;

最终目标是获得一个新数组,其中只包含已检查过的名称和图像的值。

我想到了一些简单的东西,抓取未选中复选框的键(数字)并从我的数组中取消它们。但问题是我不知道如何处理复选框

3 个答案:

答案 0 :(得分:5)

要在PHP中以数组形式接收输入,您必须使用HTML中的括号设置其名称:

<label><input type="checkbox" name="thename[]" value="" /> The text</label>

然后,当你访问$ _REQUEST ['thename']时,你会得到一个数组。检查它以查看其格式并使用它:)

答案 1 :(得分:2)

首先,我建议只有一个阵列:

$array = array (0 => array('name' => '....', 'url' => '....'))

我认为这会让你的生活更轻松。 同样在HTML中你也可以发送数组键

foreach ($yourArray as $key=>$value) {
    ...
    <INPUT type="checkbox" name="chkArr[<?php echo $key ?>]" value="1" checked/>          

然后在您的表单操作中,您可以删除初始数组并删除未选中的数组。

foreach ($yourArray as $key=>$value) {   
    if (!isset($_POST['chkArr'][$key]) OR $_POST['chkArr'][$key]!='1') {
        unset($yourArray[$key]);  
    }
}

答案 2 :(得分:0)

<INPUT type="checkbox" name="chkArr[]" value="$num" checked/>

提交表单后,您将拥有数组$ _REQUEST ['chkArr'],其中您将拥有仍然选中的复选框的数字。

要查看未选中的内容,请使用array_diff($listOfAllNums, $chkArr)