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 + "¶=" + 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
相关产品推荐
相关产品推荐

