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

如何获取表单内动态ID锚点链接的ID并提交至后端?

解决动态锚点ID提交表单的问题

嘿,我来帮你搞定这个提交动态ID的问题!你现在的问题是点击a标签直接提交表单,但表单里没有携带那个动态的ASM ID,所以后端拿不到数据。咱们只需要两步就能解决:

步骤1:添加隐藏字段存储ASM ID

在你的表单里,新增一个隐藏的input字段,专门用来存放要提交的ASM ID。把它放在token字段后面就行:

<form method="POST" action="#" id="rsmForm">
    <!-- Token字段-->
    <input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
    <!-- 新增的隐藏字段,用来存ASM ID -->
    <input type="hidden" name="asmID" id="hiddenAsmID" value="">
    
    <a href="#demo{{$i}}" id="{{ $a['id'] }}" name="asmID" data-value="{{ $a['id'] }}" onclick="document.getElementById('hiddenAsmID').value = this.dataset.value; document.getElementById('rsmForm').submit();"> + ASM ({{ $a['id'] }}) </a>
</form>

步骤2:修改点击事件,赋值后再提交

修改a标签的onclick事件,先把当前a标签的data-value(也就是你的动态ASM ID)赋值给刚才新增的隐藏字段,然后再提交表单。这里用this.dataset.value是因为你已经把ID存在了data-value属性里,这种方式比直接用this.id更规范——毕竟id属性有时候可能有其他用途,而data-*属性就是专门用来存储自定义数据的。

(可选)用封装函数让代码更清晰

如果你的页面里有多个这样的a标签,或者想让代码更易维护,可以把逻辑封装成一个JS函数:

<script>
function submitFormWithAsmId(element) {
    // 把点击的a标签的data-value赋值给隐藏字段
    document.getElementById('hiddenAsmID').value = element.dataset.value;
    // 提交表单
    document.getElementById('rsmForm').submit();
}
</script>

<form method="POST" action="#" id="rsmForm">
    <!-- Token字段-->
    <input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
    <!-- 新增的隐藏字段 -->
    <input type="hidden" name="asmID" id="hiddenAsmID" value="">
    
    <a href="#demo{{$i}}" id="{{ $a['id'] }}" name="asmID" data-value="{{ $a['id'] }}" onclick="submitFormWithAsmId(this);"> + ASM ({{ $a['id'] }}) </a>
</form>

后端接收

这样提交后,后端就能通过asmID这个参数拿到对应的动态ID了。比如在Laravel里,你可以用$request->input('asmID')来获取;如果是原生PHP,就用$_POST['asmID']。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:27:25