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

PHP循环生成按钮调用AJAX仅首个返回结果的代码问题求解

代码修正方案

核心修改思路

  • 移除重复的固定id,通过this将当前点击的按钮对象直接传入点击事件,无需拼接动态id
  • 直接从传入的按钮对象读取value,再查找按钮内部的span元素渲染结果,避免id冲突
  • 修复后端参数获取逻辑,适配PHP默认配置

1. 主页面代码修正

include('hide-ajax-scripts.php');

$dblinjer = Array();
$dblinjer[0]['loebid'] = 5;
$dblinjer[1]['loebid'] = 'frank';
$dblinjer[2]['loebid'] = 48;
$dblinjer[3]['loebid'] = 'Bo';
$dblinjer[4]['loebid'] = 'test';

$i = 0;
while($i < 5){
    // 移除重复id,onclick传入当前按钮对象this
    $dblinjer[$i]['nrlink'] = '<div><button type="button" value="'.$dblinjer[$i]['loebid'].'" onclick="baadimaal(\'baadimaal\', this)"><span></span></button></div>';
    echo $dblinjer[$i]['nrlink'];
    $i++;
}

2. hide-ajax-scripts.php 代码修正

<script type="text/javascript">
// 新增btn参数接收当前点击的按钮对象
function baadimaal(str, btn) {
    // 直接从按钮对象取value
    var x = btn.value;
    const xhttp = new XMLHttpRequest();
    xhttp.onload = function() {
        // 查找当前按钮内部的span元素渲染结果
        btn.querySelector('span').innerHTML = this.responseText;
    }
    xhttp.open("GET", "hide-ajax-svar.php?funk=" + str + "&para=" + x);
    xhttp.send();
}
</script>

3. hide-ajax-svar.php 代码修正

<?php
// 从GET请求中获取参数,避免PHP全局变量未开启时报错
$funk = $_GET['funk'] ?? '';
$para = $_GET['para'] ?? '';
if($funk == 'baadimaal'){
    echo 'FRANK='.$para;
}
?>

内容的提问来源于stack exchange,提问作者Frank Rosendahl Larsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:45:04