PHP读取数据库数据后如何一次性弹窗展示所有数据?
解决方法
问题根源是你仅在循环外部给$total_fail_log赋值了最后一次循环的$row数据,所以alert只显示最后一条。要实现弹窗展示全部数据,需要把每条数据逐步拼接起来,具体修改如下:
- 先初始化一个空字符串,用于累加所有日志内容
- 在foreach循环里,将每条数据拼接到字符串中,弹窗里用
\n实现换行(<br>是HTML换行标签,alert无法识别) - 最后把拼接好的字符串传入alert,同时转义单引号避免JS语法报错
修改后的代码:
// 初始化空字符串用于存储所有日志 $total_fail_log = ''; foreach($result as $row){ // 逐行拼接日志内容,用\n做换行 $total_fail_log .= "excel_number:{$row['excel_index']} / fail_reason:{$row['reson_result']}\n"; // 保留原页面打印逻辑 print_r("excel_number:".$row['excel_index']." / "."fail_reason:".$row['reson_result']."<br>"); } // 转义字符串中的单引号,防止破坏JS语法 $total_fail_log = addslashes($total_fail_log); // 输出弹窗脚本 echo "<script>alert('$total_fail_log');</script>";
说明:
- 使用
.=运算符实现字符串累加,每次循环把当前行的内容追加到$total_fail_log中 - 替换
<br>为\n,确保弹窗内的内容按行显示 addslashes函数处理字符串,避免日志内容中的单引号导致JS脚本报错
内容的提问来源于stack exchange,提问作者전준휘
相关产品推荐
相关产品推荐

