如何修复 PHP 代码中的“通知:未定义索引”错误?

问题描述 投票:0回答:0

如果这个问题在 Stackoverflow 中被问了很多次,我深表歉意。

我在下面的 php 代码中的

Line A
处收到以下通知:

"Notice: Undefined index: check7456".

Line B
,我们正在检查
$list
是否是一个数组。

PHP代码:

foreach ($_POST['rows'] as $AB_CD) {
    $data = $dbo->execStmt("SELECT AB_NO, INFO, CAPACITY FROM TABLE_NAME1 WHERE AB_CD = {$AB_CD}");

    $document = new Document($db, 'EDR', $data['AB_NO'][0], $data['INFO'][0], $data['CAPACITY'][0]);

    $list = $_POST["check{$AB_CD}"];   // Line A

    foreach ($values as $name) {
        if (is_array($list) && in_array($name, $list)) {    // Line B
            $document->helloWorld('Good Day', $name);
        } else {
            $document->removeHelloWorld('Good Day', $name);
        }
    }
}

问题陈述:

我想知道我需要在上面的 php 代码中做哪些更改才能修复 Notice 问题。

这是我试过的。我添加了

Line Z
并修改了
Line A
。让我知道这个解决方案是否有效。

$list = [];   // Added Line Z
foreach ($_POST['rows'] as $AB_CD) {
    $data = $dbo->execStmt("SELECT AB_NO, INFO, CAPACITY FROM TABLE_NAME1 WHERE AB_CD = {$AB_CD}");

    $document = new Document($db, 'EDR', $data['AB_NO'][0], $data['INFO'][0], $data['CAPACITY'][0]);

    if(isset( $_POST["check{$AB_CD}"])) $list[] = $_POST["check{$AB_CD}"];   // Line A (modified)

    foreach ($values as $name) {
        if (is_array($list) && in_array($name, $list)) {    // Line B
            $document->helloWorld('Good Day', $name);
        } else {
            $document->removeHelloWorld('Good Day', $name);
        }
    }
}
php
© www.soinside.com 2019 - 2024. All rights reserved.