3

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

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

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

但现在我想做点别的,在每个图像附近添加一个复选框,默认情况下这些复选框 r 处于活动状态。好的,现在用户可以取消选中某些收件箱;

最终目标是获取一个新数组,该数组仅包含已检查的名称和图像的值。

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

4

3 回答 3

5

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

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

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

于 2009-03-22T15:03:15.280 回答
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]);  
    }
}
于 2009-03-22T15:58:53.387 回答
0
<INPUT type="checkbox" name="chkArr[]" value="$num" checked/>

提交表单后,您将拥有数组 $_REQUEST['chkArr'],其中您将拥有仍处于选中状态的复选框的编号。

查看哪些未选中使用array_diff($listOfAllNums, $chkArr)

于 2009-03-22T15:06:29.017 回答