PHP生成的下拉表单在HTML页面短暂显示后消失的问题求助
解决动态生成下拉框短暂显示后消失的问题
核心问题很明确:你的<input type="submit">按钮点击后,会默认触发表单的提交行为,导致页面刷新——这就是为什么下拉框刚显示一秒就消失了,页面刷新后所有动态生成的内容都会被重置。
给你几个可行的解决方案:
方案1:阻止submit按钮的默认提交行为
修改按钮的onclick事件,在调用getLoc()后返回false,就能阻止表单提交:
<input type="submit" value="Search" onclick="getLoc(); return false;">
或者在getLoc函数内部通过事件对象阻止默认行为(更规范的写法):
function getLoc(event){ event.preventDefault(); // 关键:阻止表单默认提交动作 var dataRequest; // 后面的原有代码保持不变... }
对应的HTML按钮要传递事件参数:
<input type="submit" value="Search" onclick="getLoc(event)">
方案2:把submit按钮改成普通button
直接把按钮类型从submit改成button,这样点击就不会触发表单提交:
<input type="button" value="Search" onclick="getLoc()">
额外的安全建议
你的PHP代码存在SQL注入风险,直接将用户输入拼接到SQL语句里是非常危险的。建议使用预处理语句来避免这个问题:
$queryStr = htmlspecialchars($_POST['searchValue']) . "%"; // 使用预处理语句 $stmt = $conn->prepare("SELECT location FROM `location_lkup` WHERE location LIKE ? ORDER BY `location` ASC"); $stmt->bind_param("s", $queryStr); // "s"表示参数为字符串类型 $stmt->execute(); $locRslt = $stmt->get_result(); // 后面的结果处理代码保持不变...
这样修改后,下拉框应该就能稳定显示了,同时也提升了代码的安全性。
内容的提问来源于stack exchange,提问作者paulb
相关产品推荐
相关产品推荐

