任白帆 2022-10-05 09:10 采纳率: 66.7%
浏览 79
已结题

用PHP写查询功能失败

问题遇到的现象和发生背景

用PHP写了一个从数据库查询并显示结果的功能,但无法利用POST得到搜索框输入的内容
这是搜索框↓

img


查询结果页面↓

img


三个搜索框都是传参失败不知道为什么

用代码块功能插入代码

//因为三个搜索框都是一个套路,这里只放主界面和第一个搜索框的内容了

<!DOCTYPE html>//主页面代码
<html>
<head>
    <title>主页</title>
    <link rel="stylesheet" href="main.css">
    <meta charset="UTF-8">
</head>

<body>
<div id="kuangjia" style="width:1200px">
   <div id="header" style="background-color:#99d6ea80;text-align:center">⚠本站结果仅供参考,若有不适请您及时就医⚠</div>
    <div id="serchsym" style="background-color:#99d6ea25;height:300px;width:400px;float:left">
    <form action="serchactone.php" method="post">
         <div id="inputbox">
        <p>症状查询<input type="text" class="text" id ="serchsym" name="serchsym" style="height:30px;width:210px" placeholder="请输入症状,可以少但不可以多"></p>
         <p1><input onclick="{location.href='serchactone.php'}" type="button" class="btn" value="查询"></p1>
         </div>
    </form>
     </div>
    </div>
</div>
   <div id="searchmed" style="background-color:#99d6ea35;height:300px;width:400px;float:left">
    <form action="serchacttwo.php" method="post">
       <div id="inputbox">
    <p>药品查询<input type="text" class="text" name="serachmed" style="height:30px;width:210px" placeholder="请输入药品名称"></p>
    <p1><input onclick="{location.href='serchacttwo.php'}" type="button" class="btn" value="查询"></p1>
      </div>
     </form>
   </div>
   <div id="searchctm" style="background-color:#99d6ea25;height:300px;width:400px;float:left">
   <div id="inputbox">
    <p>中药查询<input type="text" class="text" name="serachthree" style="height:30px;width:210px" placeholder="请输入中药名称,不要错字哦"></p>
     <p1><input onclick="{location.href='answerthree.php'}" type="button" class="btn" value="查询"></p1>
    <input onclick="window.location.href='https://ai.baidu.com/tech/imagerecognition/plant'" type="button" class="btn" value="拍照查询">
    </div>
     </div>
     <div id="footer" style="background-color:#99d6ea80;clear:both;text-align:center">⚠本站结果仅供参考,若有不适请您及时就医⚠</div>
     </div>
</body>
</html>


<!DOCTYPE html>//第一个搜索框跳转界面代码
<html>
<head>
<title>查询结果</title>
<meta charset="UTF-8">
</head>

<body>
<div id="kuangjia" style="width:1200px">
<div id="header" style="background-color:#99d6ea80;text-align:center">查询结果</div>
  <?php
    $conn = mysqli_connect("localhost", "root", "123456") or die("数据库链接错误");
    $db_selected=mysqli_select_db($conn,"SafeAskM");
    $serchsym = isset($_POST['serchsym']) ? $_POST['serchsym']:'';
    if(!empty($serchsym)) {
        $sql = "SELECT disease,symptom,pathogeny,medicine FROM ask_s WHERE symptom LIKE '%$serchsym%'";
        $query = mysqli_query($conn,$sql);
        while($row = mysqli_fetch_array($query)) {
            $valuea = '';
            foreach($row as $valuea){
                echo $valuea;                
            }
        }
    }else{
        echo"啊哦,页面不见了哦";
    }  
?>
<div id="footer" style="background-color:#99d6ea80;clear:both;text-align:center">⚠本站结果仅供参考,若有不适请您及时就医⚠</div>
</div>
</body>
</html>


我的解答思路和尝试过的方法

之前做测试的时候是能成功搜索的,在我更改了一下链接的数据库以后就不行了,所以想问问是我的代码有问题还是数据库有问题

  • 写回答

6条回答 默认 最新

  • ironprosper 2022-10-05 10:05
    关注

    现在这样是通过onclick事件直接跳转到serchactone.php了,没有携带参数
    修改:按钮去掉onclick事件,type改为submit

    <input onclick="{location.href='serchactone.php'}" type="button" class="btn" value="查询">
    

    改为

    <input type="submit" class="btn" value="查询">
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 游一游走一走 2022-10-05 14:12
    关注

    这样改就可以啦!

    <form action="serchactone.php" method="post">
             <div id="inputbox">
            <p>症状查询<input type="text" class="text" id="serchsym" name="serchsym" style="height:30px;width:210px" placeholder="请输入症状,可以少但不可以多"></p>
             <p1>
                <input type="submit" value="查询">
            </p1>
             </div>
    </form>
    

    主意看控制台的输出

    img

    评论
    1人已打赏
  • 一把编程的菜刀 2022-10-05 18:12
    关注
      <input onclick="{location.href='serchactone.php'}" type="button" class="btn" value="查询">
    
    这个onclick="{location.href='serchactone.php'}"操作就变成了走get方式,并不是走post方式,而且并不是走表单
    你要用onclick 可以也可以,哪就改成
        <form action="serchactone.php" method="post" name="searchsubmit">
             <div id="inputbox">
            <p>症状查询<input type="text" class="text" id ="serchsym" name="serchsym" style="height:30px;width:210px" placeholder="请输入症状,可以少但不可以多"></p>
             <p1><input onclick="searchsubmit.submit()" type="button" class="btn" value="查询"></p1>
             </div>
        </form>
    要么就把
      <input onclick="{location.href='serchactone.php'}" type="button" class="btn" value="查询">
    
    改成
    <input type="submit" class="btn" value="查询">
    
    评论 编辑记录
    1人已打赏
  • Haven55555 2022-10-05 23:24
    关注

    既然是走表单传参了。就不要再给按钮附加oncick跳转事件了

    评论
    1人已打赏
  • 任聪聪 全栈领域优质创作者 2022-10-06 09:06
    关注

    这里其实不止以下这两种解决办法,但这两种解决方式是比较贴近你目前界面代码的。
    第一种给第34行的input的onclick,绑定一个ajax的post提交函数也可以解决问题,跳转页面读取加载id获取数据赋值页面显示。
    第二种就是把表单的提交按钮改为botton的按钮形式,type改为submit类型,实现post的请求。

    评论
    1人已打赏
  • 世风十三 2022-10-06 11:04
    关注

    需要对 POST 请求有更深的理解,这里的提交方式主要分两种:

    • 使用 HTML 表单自带的提交功能,即 form 中加一个 type="submit" 的按钮来提交到 action="serchactone.php" 的方式;
    • 使用 JavaScript 脚本方式通过 Ajax 功能提交, 可以借助前端的一些类库和框架,需要学习一些前端开发技术,即可以通过 onclick="javascript:searchActone(this);" 的方式提交了。
    评论
    1人已打赏
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月14日
  • 已采纳回答 10月8日
  • 创建了问题 10月5日

悬赏问题

  • ¥15 pythont数据写进DataFrame时候出现错误
  • ¥30 如何处理shell命令接收到的视频流并实时播放出来
  • ¥15 有偿求做台风过境全过程模拟仿真
  • ¥50 求!AutomationDesk 如何自动导入Variant数据
  • ¥20 Next.JS 静态导出路由
  • ¥15 我做一个对中文文本情感分析的项目 我用了CNN,和keras框架 报的错误我一直处理不好
  • ¥15 unity使用bakery打光烘焙所遇到的问题。
  • ¥99 二维有限元方法求解,泊松方程
  • ¥15 我需要在PC端 开两个抖店工作台客户端.(语言-java)
  • ¥15 有没有哪位厉害的人可以用C#可视化呀