如何将PHP的$result['FirmenID']传入JS删除确认函数实现正确跳转
实现方案
你现有代码存在几处语法和逻辑问题,不需要额外做PHP到JS的单独传参,直接读取a标签本身已经渲染好的href属性即可实现需求,修正步骤如下:
- 现有代码问题点:
- 函数名和内部变量名重名,都为
confirmDel,易引发作用域冲突 - 跳转语句误用
==比较运算符,应为=赋值运算符,否则无法触发跳转 - 成功提示语法错误,
alert(deleted")缺少前引号 - a标签默认点击会直接跳转,没有等待确认框的选择结果,需要先拦截默认行为
- 函数名和内部变量名重名,都为
第一步:修改HTML代码
给删除按钮绑定点击事件,传入当前DOM元素,PHP渲染的带FirmenID的跳转地址已经写在href属性里,不需要额外传递ID参数:
<a class="btn btn-outline-danger" href="formprocess.php?firmadelete=<?= $result['FirmenID']; ?>" onclick="return confirmDel(this)" > <i class="fa-solid fa-trash-can"></i> </a>
第二步:修正JS函数
修正语法错误,点击确认时直接读取当前a标签的href属性完成跳转,点击取消时拦截默认跳转行为:
function confirmDel(element) { const deleteConfirmed = confirm("你确定要删除吗?"); if (deleteConfirmed) { window.location.href = element.href; alert("删除成功"); return true; } else { alert("删除已取消"); return false; } }
这种实现方式不需要额外拼接跳转地址,PHP渲染页面时已经把正确的带参数地址写入DOM属性,JS直接读取即可,出错概率更低。
来自德国的问候
~Lampi
内容的提问来源于stack exchange,提问作者Lampi
相关产品推荐
相关产品推荐

