php中未定义的索引错误(下拉筛选器不起作用)
嘿,关于这个问题我搜索了很多,但我尝试的一切都不起作用( 我的代码有3个下拉列表,它们应该像搜索过滤器一样工作,但每次我从下拉列表中选择一个选项时,我都会得到3行的未定义索引错误&如果我更改另一个下拉列表,其他两个过滤器将被忽略…:( 这只是第一个下拉列表的代码:php中未定义的索引错误(下拉筛选器不起作用),php,html,undefined-index,Php,Html,Undefined Index,嘿,关于这个问题我搜索了很多,但我尝试的一切都不起作用( 我的代码有3个下拉列表,它们应该像搜索过滤器一样工作,但每次我从下拉列表中选择一个选项时,我都会得到3行的未定义索引错误&如果我更改另一个下拉列表,其他两个过滤器将被忽略…:( 这只是第一个下拉列表的代码: <?php //when the filter changes, this php is called $output = ''; if(isset($_POST["businessUnit"])) {
<?php
//when the filter changes, this php is called
$output = '';
if(isset($_POST["businessUnit"]))
{
if($_POST["businessUnit"] != '')
{
if($_POST["productGroup"] != '') //first undefined index
{
$sql = "SELECT * FROM item WHERE businessUnit = '".$_POST["businessUnit"]."' and productGroup = '".$_POST["productGroup"]."'";
}
else if($_POST["deviceType"] != '') //second undefined index
{
$sql = "SELECT * FROM item WHERE businessUnit =
'".$_POST["businessUnit"]."' and productGroup = '".$_POST["deviceType"]."'";
}
else if($_POST["productGroup"] != '' && $_POST["deviceType"] != '') //third undefined index error
{
$sql = "SELECT * FROM item WHERE businessUnit = '".$_POST["businessUnit"]."' and productGroup = '".$_POST["productGroup"]."' and deviceType = '".$_POST["deviceType"]."'";
}
else
{
$sql = "SELECT * FROM item WHERE businessUnit = '".$_POST["businessUnit"]."'";
}
}
else
{
$sql = "SELECT * FROM item";
}
$result = sqlsrv_query($connect, $sql);
while($row = sqlsrv_fetch_array($result))
{
$output .= "<tr><td>".
$row['businessUnit']."</td><td>".
$row['productGroup']."</td><td>".
$row['deviceType']."</td><td>".
$row['serialNumber']."</td><td>".
$row['location']."</td><td>".
$row['condition']."</td><td>".
$row['itemDescription']."</td><td>
<input type='checkbox'></input></td></tr>";
}
echo $output;
}
else{
$_POST["businessUnit"] = "";
}
?>
若要处理未定义索引
错误,$array[$key]!=“
将不起作用,您必须先使用isset()
,然后才能进行不等于空白的检查。
请参阅下面的解决方案,它可能会起作用
if (isset($_POST["businessUnit"]))
{
if ($_POST["businessUnit"] != '')
{
if (isset($_POST["productGroup"]) && $_POST["productGroup"] != '') //first undefined index
{
$sql = "SELECT * FROM item WHERE businessUnit = '" . $_POST["businessUnit"] . "' and productGroup = '" . $_POST["productGroup"] . "'";
} else if (isset($_POST["deviceType"]) && $_POST["deviceType"] != '') //second undefined index
{
$sql = "SELECT * FROM item WHERE businessUnit =
'" . $_POST["businessUnit"] . "' and productGroup = '" . $_POST["deviceType"] . "'";
} else if (isset($_POST["productGroup"]) && $_POST["productGroup"] != '' && isset($_POST["deviceType"]) && $_POST["deviceType"] != '') //third undefined index error
{
$sql = "SELECT * FROM item WHERE businessUnit = '" . $_POST["businessUnit"] . "' and productGroup = '" . $_POST["productGroup"] . "' and deviceType = '" . $_POST["deviceType"] . "'";
} else
{
$sql = "SELECT * FROM item WHERE businessUnit = '" . $_POST["businessUnit"] . "'";
}
} else
{
$sql = "SELECT * FROM item";
}
$result = sqlsrv_query($connect, $sql);
while ($row = sqlsrv_fetch_array($result))
{
$output .= "<tr><td>" .
$row['businessUnit'] . "</td><td>" .
$row['productGroup'] . "</td><td>" .
$row['deviceType'] . "</td><td>" .
$row['serialNumber'] . "</td><td>" .
$row['location'] . "</td><td>" .
$row['condition'] . "</td><td>" .
$row['itemDescription'] . "</td><td>
<input type='checkbox'></input></td></tr>";
}
echo $output;
} else
{
$_POST["businessUnit"] = "";
}
}
if(isset($\u POST[“businessUnit”]))
{
如果($_POST[“业务单元”]!=“”)
{
if(isset($\u POST[“productGroup”])&&&$\u POST[“productGroup”]!=“”)//第一个未定义的索引
{
$sql=“从项目中选择*,其中businessUnit=”、$\u POST[“businessUnit”]、“$\u POST[“productGroup”]。”;
}else if(isset($\u POST[“deviceType”])&&&$\u POST[“deviceType”]!=“”)//第二个未定义索引
{
$sql=“从businessUnit=
“$_POST[“businessUnit”]。”和productGroup=”。“$_POST[“deviceType”]。”;
}else if(isset($\u POST[“productGroup”])和&$\u POST[“productGroup”]!=“”&&isset($\u POST[“deviceType”])和&$\u POST[“deviceType”]!=“”)//第三个未定义的索引错误
{
$sql=“从项目中选择*,其中businessUnit=”、$\u POST[“businessUnit”]、“$\u POST[“productGroup”]、”、“$\u POST[“deviceType”]、“”;
}否则
{
$sql=“从businessUnit=”的项目中选择*”$\u POST[“businessUnit”]。“”;
}
}否则
{
$sql=“从项目中选择*”;
}
$result=sqlsrv_查询($connect,$sql);
while($row=sqlsrv\u fetch\u数组($result))
{
$output.=''。
$row['businessUnit']。“”。
$row['productGroup']。“”。
$row['deviceType']。“”。
$row['serialNumber']。“”。
$row[“位置”]。“”。
$row[“条件”]。“”。
$row['itemDescription']
";
}
echo$输出;
}否则
{
$_POST[“业务单元”]=“”;
}
}
我不知道您要做什么。请发布快照并明确指定您要做什么。您可以编写:
echo "<pre>";print_r($_POST);
after $output = '';
在$\u POST中,您将获得未定义的索引。因此,请确保您在$\u POST请求中传递了该索引。如果我不清楚,我很抱歉,感谢您的帮助,但@Parag Soni已经为我的问题找到了完美的答案。:)
$_POST["productGroup"]