【问题标题】:I want to display data on same page when user click on link当用户单击链接时,我想在同一页面上显示数据
【发布时间】: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'].

标签: php html css mysql


【解决方案1】:

改变

$query='SELECT * FROM data WHERE subcat='.$_REQUEST['val'];

进入

$query='SELECT * FROM data WHERE subcat='.!empty($_REQUEST['val']) ? $_REQUEST['val'] : '');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2016-05-16
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多