WP_List_Table中如何用PHP将数据库内容显示到textarea?
解决方案:用PHP直接实现textarea内容填充
完全不需要额外依赖JavaScript/jQuery,直接修改PHP代码就能解决问题。
你的问题出在**列渲染函数column_notes**里:当前生成的textarea标签是空的,没有把$data数组里的notes内容填充进去。只需要在textarea的起始和闭合标签之间加入对应的数据即可。
修改后的列渲染函数
function column_notes($item){ return sprintf( '<span><textarea id="%s">%s</textarea></span>', $item['ID'], $item['notes'] ); }
补充说明
- 你已经在
prepare_items里用htmlspecialchars处理了notes内容,所以直接输出到textarea里不会有HTML转义问题,也能避免XSS风险。 - 注意你的SQL查询存在SQL注入风险,建议改用
$wpdb->prepare做预处理:
用'notes' => htmlspecialchars($wpdb->get_var($wpdb->prepare( "SELECT notes FROM orders WHERE id = %d", $order->id )))%d占位符匹配整数类型的订单ID,能有效防止注入攻击。
内容的提问来源于stack exchange,提问作者user2963789
相关产品推荐
相关产品推荐

