将复选框数组分配给变量

时间:2016-01-08 15:53:54

标签: php arrays checkbox

我正在尝试使用复选框来填充具有特定格式的数据库中的单个字符串。我可以成功打印数组,但我不明白如何将其分配给变量以便连接到数据库并在站点的其他地方再次使用。这是html:

 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="C">Commercials
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="CP">Commercial Print
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="V">Voice Overs
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="X">Background Work
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="F">Film
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="TV">Television
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="BT">Business Theatre Industrials
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="I">Film Industrials
 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="MV">Music Videos

PHP:

foreach($_POST['bookCodes'] as $codes) {
    print "(".$codes.")";
};

我希望打印的字符串等于$bookCodes。我已经尝试将数组放在一个函数中,但后来我只得到了第一个值。这是代码:

function prepBookCodes ($value)
{
    if (isset($_POST[$value])) {
        foreach ($_POST[$value] as $codes) {
            return "(" . $codes . ")";
        }
    }
}
$bookCodes = prepBookCodes('bookCodes');

print $bookCodes;

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:2)

你的第一个声明没有它作为一个数组:

<input type="checkbox" id="bookCodes" name="bookCodes" value="C">Commercials

应该是

 <input type="checkbox" id="bookCodes" name="bookCodes[]" value="C">Commercials

答案 1 :(得分:1)

连接就是答案。让你的函数返回一些东西!

function prepBookCodes ($value)
{
    if (isset($_POST[$value])) {
        foreach ($_POST[$value] as $codes) {
            $string .= "(" . $codes . ")";
        }
    }

    return $string;
}
$bookCodes = prepBookCodes('bookCodes');

答案 2 :(得分:0)

function prepBookCodes ($value)
{
    if (isset($_POST[$value])) {
        foreach ($_POST[$value] as $codes) {
           echo "(" . $codes . ")";
        }
    }
}

答案 3 :(得分:0)

也许您可以将帖子值连接成一个变量$bookCodes

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['bookCodes'])) {
        $bookCodes = '';
        foreach ($_POST['bookCodes'] as $codes) {
            $bookCodes .= "(" . $codes . ")";
        }
        print $bookCodes;
    }
}

例如,如果您选中所有复选框,则$bookCodes变量将包含:

  

(C)(CP)(V)(X)(F)(TV)(BT)(I)(MV)