来自复选框值的PHP数组仅返回Array而不是值

时间:2014-04-22 18:48:31

标签: php mysql arrays

根据这里的建议,使用$ _POST方法从我创建的复选框值声明数组。但它不起作用。

在下面的mysql表中,它只存储表示Array的文本。它不会存储任何已检查的值。

即使我在下面的代码中输入了echo,它也会输出" Array"。

带有问题的HTML PAGE

<input type="checkbox" name="cb1[]" value="Mike">
<input type="checkbox" name="cb1[]" value="Irena">
<input type="checkbox" name="cb1[]" value="Sonya">

<input type="checkbox" name="cb2[]" value="Samsung">
<input type="checkbox" name="cb2[]" value="Apple">

PHP SCRIPT

for($i=1;$i<101;$i++) {
    if(isset($_POST['cb'.$i])) {
        $row[$i] = $_POST['cb'.$i];
    }}
echo $row[1]; //it gives Array insted of values selected in the cb1

<?php
$db =& JFactory::getDBO(); 
$query = "INSERT INTO storeresults(V1, V2) VALUES ('$row[1]','$row[2]')"; 
$db->setQuery($query); 
$db->query();
?>

1 个答案:

答案 0 :(得分:6)

鉴于您的name="cb1[]",您的$ _POST值将只是$_POST['cb1'],恰好是一个数组:

foreach($_POST['cb1'] as $key => $value) {
   echo $value; // spit out a name
   echo $_POST['cb1'][$key]; // same thing, in a different way
}

另外,正如所写,您的查询容易受到SQL injection attacks

的攻击