【问题标题】:PHP Undefined Index when handling checkboxes with MySQLi使用 MySQLi 处理复选框时的 PHP 未定义索引
【发布时间】:2014-03-20 01:01:51
【问题描述】:

我有一些 PHP 代码使用 MySQLi 检查 MYSQL 数据库,并将所有“股票”类型输出到带有 while 语句的表单中:

$result = mysqli_query($link,"SELECT name FROM items WHERE type='stock' ORDER BY name");
echo '<table style="text-align:center;"><tr><th>Name</th><th>Quantity</th><th>Use</th>';

while($item = mysqli_fetch_array($result)){

        echo '<tr><form action="chooseProduct" method="POST"><td>' . $item['name'] . '</td><td><input type="number" name="amount[]"></td><td><input type="checkbox" name="stock[]" value="' . $item['name'] . '"></td></tr>';

    }

echo '<tr><td rowspan="3" colspan="3"><input type="submit" value="Select"></td></tr></form></table>';

然后我需要能够选择我希望使用的股票并单击选择将我发送到“选择产品”页面,在那里我应该能够使用数据“数量”和“库存”数组形式。但是,当使用 POST 在选择产品页面上检索这些值时,请执行以下操作:

$stock = $_POST['stock'];
$amount = $_POST['amount'];

我得到如下错误:

Notice: Undefined index: stock in C:\xampp\htdocs\production\chooseProduct\index.php on line 59

Notice: Undefined index: amount in C:\xampp\htdocs\production\chooseProduct\index.php on line 60

该复选框肯定被选中,那么可能导致此错误的原因是什么?

【问题讨论】:

  • var_dump($_POST) 显示什么?
  • @JohnConde array(0) { }

标签: php html arrays forms mysqli


【解决方案1】:

如果您没有检查是否已经执行了 POST 操作,那么在分配它时会有警告/通知。 试试

$stock = isset($_POST['stock']) ? $_POST['stock'] : '';
$amount = isset($_POST['amount']) ? $_POST['amount'] : '';

【讨论】:

  • 虽然这是一个很好的编程习惯,但实际上并不能解决他们的问题。
  • 谢谢先生 :) 。我已经尽力做到这一点,还是新手:)
  • 没关系。感谢您遵循良好的编程实践并尝试帮助他人。 :)
【解决方案2】:

您的表单标签在您的循环中。这会在您的页面上创建一堆无效的打开表单。这几乎肯定会导致您的表单提交无效数据或根本不提交任何数据。将打开的 &lt;form&gt; 标记移到循环之外以解决此问题。

【讨论】:

  • 这绝对有帮助,谢谢。不幸的是,它似乎并没有解决问题。
  • 您的表单是否有结束 &lt;/form&gt; 标记?您确定 HTML 的其余部分有效吗?
  • 表单在最后一个回显中关闭。我已经阅读了 HTML,并且我有理由确定它是有效的,因为它可以在页面上直观地输出我期望的内容。但是,我没有在表单中使用数组和复选框,所以我不确定我是否在这里使用它。
  • var_dump($_POST) 是否仍显示array(0) { }?如果是这样,某处仍然存在 HTML 错误。如果可以的话,我会尝试简化页面,看看是否有帮助。
  • 是的,确实如此。确实没有任何地方可以简化页面,我知道页面上的其余代码工作正常,不应该干扰产生错误的代码。
猜你喜欢
  • 2013-11-11
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
  • 2014-01-27
  • 1970-01-01
  • 2016-11-23
相关资源
最近更新 更多