PHP带月份判断的跳转按钮代码修复求助
解决按钮跳转问题的修正代码
你的问题出在两个核心错误上:
- 按钮元素本身没有
href属性,原正常代码是通过onclick事件触发页面跳转,你在else分支里错误地用了href; - 在PHP的
echo字符串里嵌套了<?php ?>标签,这完全没必要——当前已经在PHP代码块里,直接拼接变量和函数返回值即可。
修正后的完整代码如下:
<?php $month = date('m'); if ($month == 1 || $month == 12) { echo "<button style='vertical-align:middle' class='button' disabled>Add new instrument</button></br><p>Add new instrument is <em>not-active.</em></p>"; } else { // 提前拼接跳转URL,让代码更清晰 $addUrl = base_url() . 'in/' . $ao->attr_lab_code . '/' . $ao->id_ins_code . '/add'; echo "<button class='button' style='vertical-align:middle' onclick=\"location.href='$addUrl';\"><span>Add new instrument</span></button>"; } ?>
关键修改点说明:
- 把else分支里的
href替换回原代码的onclick="location.href='...'"写法,符合按钮触发跳转的逻辑; - 提前将跳转URL拼接成变量
$addUrl,避免在echo字符串里直接嵌套复杂的函数和变量拼接,降低出错概率; - 修复了原代码里的标签闭合错误(之前写的
</>应为</button>); - 补全了
<p>标签的闭合,保证HTML结构合法; - 将
or替换为PHP更常用的||逻辑或运算符(两者功能一致,仅风格差异)。
修改后,2-11月的按钮就能正常跳转到目标链接http://base_url/in/labcode/inscode/add了。
内容的提问来源于stack exchange,提问作者Skylar19
相关产品推荐
相关产品推荐

