【问题标题】:Checking if $_POST variable is set using mysql variable检查是否使用 mysql 变量设置了 $_POST 变量
【发布时间】:2020-04-07 11:36:12
【问题描述】:

我有一个从表单接收一些复选框值的 php 文件。复选框名称和值都设置为匹配 mysql 表中的 Item_Name 字段。我目前的尝试如下:

while($row = $items->fetch_assoc()){
        if( isset($_POST[$row['Item_Name']])) {
            \\ Code to perform if true, mostly echoes
        }
    }

//Checkbox setup: 

echo  "<input type='checkbox' name=" . $row['Item_Name'] .  "value=" . $row['Item_Name'] .  ">"

$items 是我查询mysql表返回的数据。目前 if 中的任何回声都没有触发,所以我认为我的 if 语句有问题,但我是 php 新手,确切知道什么是错误的。

【问题讨论】:

  • 没有足够的代码知道原因。假设$row['Item_Name']Bags。现在 PHP 正在寻找$_POST['bags']。除此之外,由您来调试它。也许试试var_dump($_POST);
  • 为此您需要一个foreach,并确保输入具有[] 多个数组括号。
  • @Machavity 我的错我做了一个 $_POST 的 var 转储,它返回了这个 array(2) { ["Applevalue=Apple"]=&gt; string(2) "on" ["Milkvalue=Milk"]=&gt; string(2) "on" }
  • @FunkFortyNiner foreach 会在这里替换 while 循环。我只是对它的外观有点困惑
  • 我猜$row['Item_Name'] 中的值实际上是AppleMilk 等,所以问题似乎出在复选框的name 属性的生成中。

标签: php mysql forms checkbox


【解决方案1】:

您的问题在于您的复选框设置;您在 namevalue 属性周围缺少引号。试试这个:

echo  "<input type='checkbox' name=\"" . $row['Item_Name'] .  "\" value=\"" . $row['Item_Name'] .  "\">";

【讨论】:

    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 2011-04-05
    相关资源
    最近更新 更多