【问题标题】:PHP array from checkbox values returns only Array instead of values来自复选框值的 PHP 数组仅返回数组而不是值
【发布时间】:2014-04-22 18:48:31
【问题描述】:

根据这里的建议使用 $_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();
?>

【问题讨论】:

  • 改用var_dump($row[1]);,因为$row[1] 是一个选定值的数组。如果你想得到你需要把它放在另一个for循环中的值
  • 你想将每个选定的值作为记录插入,还是我想你想用,之类的东西加入它们,然后在数据库中插入加入的值?

标签: php mysql arrays


【解决方案1】:

鉴于您的 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 的攻击。

【讨论】:

    猜你喜欢
    • 2018-04-11
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2011-09-14
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多