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

如何分离foreach循环的不同值,解决给input赋值仅获取最后一个值的问题

问题原因

  • 代码在foreach循环内重复定义同名的addSizeToForm函数,JS中后定义的同名函数会覆盖之前的所有定义,因此所有按钮触发的都是最后一次循环生成的函数,只会返回最后一条数据的size值。

修复方案

把JS函数移到循环外部,点击按钮时直接把对应size作为参数传入函数即可,修改后的代码如下:

<?php 
foreach ($movie['torrents'] as $torrents): 
    $torrents = get_object_vars($torrents); 
?>
    <!-- 把当前的size作为参数传入调用的方法里 -->
    <button class="btn btn-primary btn-sm m-2" onclick="addSizeToForm('<?php echo htmlspecialchars($torrents['size']);?>')">Try it</button>
<?php endforeach; ?>

<input id="file_size" type="text" value="" required>

<!-- JS函数只定义一次,放在循环外面 -->
<script>
function addSizeToForm(size) {
    document.getElementById("file_size").value = size;
}
</script>

新增的htmlspecialchars方法可以处理size值中的特殊字符,避免出现引号冲突、JS语法错误等问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:54:03