根据这里的建议,使用 $_POST 方法从复选框值声明数组,我做到了。但它不起作用。
在下面的 mysql 表中,它只存储说 Array 的文本。它不存储任何检查的值。
即使我像下面的代码一样输入 echo,它也会打印出“Array”。
带有问卷的 HTML 页面
<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 脚本
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();
?>
最佳答案
给定您的 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 的攻击.
关于来自复选框值的 PHP 数组仅返回数组而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227820/