You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP搜索按钮点击无响应问题排查及解决方案求助

药品搜索按钮无响应问题排查与修复

你的按钮点击无反应,不需要额外写onclick函数,问题出在表单和PHP代码的基础错误上,以下是具体问题和修复方案:

一、HTML表单(index.php)的核心错误

  1. method属性错误:表单的method应该写"POST",而不是"$_POST",后者是PHP变量,不能直接写在HTML属性里
  2. 按钮类型错误:type="button"的按钮不会触发表单提交,必须改成type="submit"
  3. 输入框缺少name属性:PHP通过name属性接收表单数据,你的输入框只有id="Search",没有name="cerca",导致数据无法传递到后端

修正后的index.php代码:

<html>
<!-- 用户输入药品名称的区域 -->
<form action="Ricerca.php" class="form-subscribe" id="contactForm" data-sb-form-api-token="API_TOKEN" method="POST">
    <div class="row">
        <div class="col">
            <!-- 添加name属性,和PHP接收的字段名一致 -->
            <input class="form-control form-control-lg" id="Search" name="cerca" type="text" placeholder="Medicine Search"/>
        </div> 
        <!-- 按钮改为submit类型,触发表单提交 -->
        <div class="col-auto"><button type="submit" class="btn btn-primary" id="cerca">Search</button></div>
    </div>
</form>   
</html>

二、PHP处理页面(Ricerca.php)的错误

  1. 变量提前使用:$Quantita在循环外就进行判断,此时还未从数据库获取数据,会导致未定义变量错误,必须把判断逻辑放到while循环内部
  2. 错误的字段取值:$Riordino=$row["$ris"];这行完全错误,$ris是你生成的判断文本,不是数据库字段,直接用$ris赋值即可
  3. SQL注入风险:直接拼接用户输入到SQL语句中,存在安全隐患,建议使用预处理语句
  4. 缺少错误处理:没有处理查询失败的情况,比如数据库连接错误或SQL语法错误

修正后的Ricerca.php代码:

<?php 
require_once("Connessione.php");
$result=''; 

// 先判断是否有POST数据传入
if(isset($_POST["cerca"]) && !empty($_POST["cerca"])){
    $cerca = $_POST["cerca"];

    // 使用预处理语句防止SQL注入
    $sql = "SELECT * FROM farmaco WHERE Nome_Farmaco like ?";
    $stmt = $conn->prepare($sql);
    $like_param = "%".$cerca."%";
    $stmt->bind_param("s", $like_param);
    $stmt->execute();
    $result = $stmt->get_result();

    if($result && $result->num_rows > 0 ){
        echo "<h2>Farmaci trovati con questo nome</h2>";
        while($row = $result->fetch_assoc())  { 
            $ID=$row["ID"];  
            $Nome_Farmaco=$row["Nome_Farmaco"];
            $Produttore=$row["Produttore"];
            $Fornitore=$row["Fornitore"];
            $Scadenza=$row["Scadenza"];
            $Descrizione=$row["Descrizione"];
            $Quantita=$row["Quantita"];
            
            // 把库存判断放到循环内,使用当前行的Quantita值
            $ris = ($Quantita < 1) ? "si, necessario riordino" : "no, non necessario riordino";

            echo "<h2>Codice: ".$ID."</h2>";
            echo "<h2>Nome_Farmaco: ".$Nome_Farmaco."</h2>";
            echo "<h2>Produttore: ".$Produttore."</h2>";
            echo "<h2>Fornitore: ".$Fornitore."</h2>";
            echo "<h2>Scadenza: ".$Scadenza."</h2>";
            echo "<h2>Descrizione: ".$Descrizione."</h2>";
            echo "<h2>Riordino: ".$ris."</h2>";
            echo "<h2>Quantita: ".$Quantita."</h2>";
        }
    } else {
        echo "<h2>Nessun farmaco trovato</h2>";
    }
} else {
    echo "<h2>Inserisci un nome di farmaco per cercare</h2>";
}

// 关闭语句和连接
if(isset($stmt)) $stmt->close();
$conn->close();
?>

三、额外提示

  • 确保Connessione.php中的数据库连接代码正确,没有语法错误
  • 可以打开浏览器的开发者工具(F12),查看控制台是否有JS错误,或者网络请求是否正常发送
  • 所有HTML标签要正确闭合,比如原代码中<h2>标签未正确关闭,会导致页面渲染异常

内容的提问来源于stack exchange,提问作者Programmer967

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:50:37