php - 在 foreach 循环内正确构造 PHP html 字符串,而不是循环
问题描述
使用下面的代码,我让 $cid 循环但 $html_string 没有循环。它似乎只运行一次。为什么?
php
$query = $wpdb->get_results("SELECT firstname, lastname, id FROM table_name");
add_action("wp_ajax_myphp", "myphp");
add_action("wp_ajax_myphp", "myphp");
function myphp() {
global $query;
$html_string = '';
foreach($a as $value){
$html_string = ['<div class=\"myclass\">'.$value-> firstname.'</div><div class=\"myclass\">'.$value-> lastname.'</div>'];
$cid[] = $value->id;
};
echo json_encode(array('html' => $html_string, 'cid' => $cid));
die;
}
jQuery
jQuery.ajax({
data: {action: 'myphp'},
type: 'post',
url: my_ajax.ajax_url,
dataType: 'JSON',
success: function(data) {
console.log(data);
}
});
上述代码的示例输出:
cid: Array(3) [ "44", "45", "46" ]
html: (1) […]
0: "<div class=\\\"myclass\\\">Bob</div><div class=\\\"myclass\\\">Smith</div>"
length: 1
它按原样迭代了cid
三次,但只迭代一次
解决方案
$html_string 不是数组,因此它包含最后一次迭代的值。
尝试
$html_string[] = '<div class=\"myclass\">'.$value-> firstname.'</div><div class=\"myclass\">'.$value-> lastname.'</div>';
并删除
$html_string = '';
推荐阅读
- javascript - 在字符串文字中分隔字符串和 html 标记
- sql - 有没有办法在 where 子句 SQL Server 2016 上排除几个小时?
- javascript - 如何将 GitHub 上最新提交的名称显示到我的网站?
- model-view-controller - Microsoft 标识平台配置依赖项永远不会完成
- api - 我如何在 Vue.js 的宠物项目中使用在线模拟 Promise
- python-3.x - 'ModuleNotFoundError: 没有名为 'MySQLdb' 的模块'
- reactjs - 如何循环我的代码取决于数组长度
- sap - SAP B1 DI-API 在保存时替换字符
- sql - 某些结果在 GROUP BY 后消失
- java - 杰克逊为空时反序列化Yaml Map