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

标签 php mysql arrays

根据这里的建议,使用 $_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/

相关文章:

mysql - 如何使用 JOIN 在 MySQL 上进行搜索?

JAVA 在 JMenuItem[] 构造函数中声明未初始化的 JMenuItem() 项

c++ - 将数组 (int*) 设置为 NULL 是否会释放它占用的内存?

带有变量的 phpmailer 正文

javascript - Codeigniter:通过Ajax上传图像并存储在数据库中

mysql - 两个不同的表连接到一个主表

php - 如何从 Joomla 中的组件菜单项获取 MySQL 查询结果并使用 foreach where 子句进行优化?

php - ZF2 - MySQL PDO 连接错误 : could not find driver

php - 多个 sql 查询合并为一个小而更好的查询

Javascript:在数组中搜索重复项