【发布时间】:2019-09-18 17:56:37
【问题描述】:
我有一个动态的导航栏。当用户单击链接时,我想在同一页面上显示数据。我正在使用 $_REQUEST。代码工作正常,但是当我运行脚本时,它给出了一个错误“未定义的索引值”......但是当用户点击一个链接时它工作正常。我想删除那个错误。
<html>
<head>
<style>
body {
background: #212121;
font-size:22px;
line-height: 32px;
color: #ffffff;
word-wrap:break-word !important;
font-family: 'Quicksand', sans-serif;
margin: 0;
padding: 0;
}
h1 {
font-size: 60px;
text-align: center;
color: #FFF;
margin-top: 150px;
font-family: 'Russo One', sans-serif;
}
h1 span {
color: #FF4649;
}
#container {
margin: 0 auto;
}
nav {
margin: 35px 0;
background-color: #FF4649;
}
nav ul {
padding: 0;
margin: 0;
list-style: none;
position: relative;
}
nav ul li {
display:inline-block;
background-color: #FF4649;
}
nav a {
display:block;
padding:0 10px;
color:#FFF;
font-size:20px;
line-height: 60px;
text-decoration:none;
}
nav a:hover {
background-color: #333;
}
nav ul ul {
display: none;
position: absolute;
top: 60px;
}
nav ul li:hover > ul {
display:inherit;
}
nav ul ul li {
width:230px;
float:none;
display:list-item;
position: relative;
}
nav ul ul ul li {
position: relative;
top:-60px;
left:230px;
}
nav ul ul li {
border: 1px solid white;
}
//li > a:after { content: ' ▼'; }
//li > a:only-child:after { content: ''; }
</style>
</head>
<body>
<html>
<head>
<meta charset="UTF-8">
<title>Pure CSS DropDown Menu</title>
<link href="https://fonts.googleapis.com/css?family=Quicksand|Russo+One&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php
$con=mysqli_connect("localhost","root","","links");
if(!$con){
echo "error occured";
}
$query="SELECT * FROM cat";
$result=mysqli_query($con,$query);
?>
<div id="container">
<nav>
<ul>
<?php
while($row=mysqli_fetch_array($result)){
$fn_id=$row['id'];
$sub_query="SELECT * FROM subcat WHERE catid=".$fn_id;
$sub_result=mysqli_query($con,$sub_query);
?>
<li><a href="pagination1.php?val=<?php echo $row['id']; ?>"><?php echo $row['name'];?></a>
<ul>
<?php
while($sub_row=mysqli_fetch_array($sub_result)){
?>
<li><a href="pagination1.php?val=<?php echo $sub_row['id']?>"> <?php echo $sub_row['anme'];?></a></li>
<?php
}
?>
</ul>
<?php
}
?>
</li>
</ul>
</nav>
<h1>Simple <span>CSS</span> DropDown Menu</h1>
</div>
<?php
$query='SELECT * FROM data WHERE subcat='.$_REQUEST['val'];
$result=mysqli_query($con,$query);
while($row=mysqli_fetch_array($result)){
?>
<p><?php echo $row['Name'];?></p>
<?php
}
?>
</body>
</html>
</body>
</html>
【问题讨论】:
-
可能是因为一开始你的
$_REQUEST是空的,所以没有索引['val']。你可以把那部分包装在if ( isset($_REQUEST['val']) ){ ... } -
请edit 将您的代码缩减为您的问题的minimal reproducible example。您当前的代码包含许多与您的问题无关的内容 - 一个最小样本通常看起来类似于一个好的单元测试:只执行一项任务,并为可重复性指定输入值。
-
elveti 感谢您的帮助。有效。我有另一个问题。实际上我想根据类别和子类别显示产品。我该如何做到这一点,就像我如何存储两个值一样。例如,我的查询将是这样的“SELECT * FROM TBL_PRODUCT WHERE catid =”。 $_REQUEST['catid'] 。 "和 subcatid =".$_REQUEST['subcatid'].