根据这里的建议,使用$ _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();
?>
答案 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。
的攻击