javascript - 表列数据中不需要的前导空格
问题描述
名为的列是
单击按钮story
的文本类型我有一个 jquery ajax 来从该列获取数据 - 在特定的id
<div id='bstory'></div>
在服务器端我有:
function a_click($id){
global $db;
$sq = "select story from dict where id = :aid limit 1";
$st = $db->prepare($sq);
$st->execute([":aid" => $id]);
echo $st->fetchColumn();
}
在客户端:
$(document).on('click', '.atitle', function(){
let id = $(this).attr('data-id');
$.post('a_dict_pro.php', {fn: 'a_click', args: [id]}, function(data){
console.log(data);
$(bstory).text(data);
});
});
一切正常问题 -
在两个地方
之前都有一个前导空格-
例如,如果列内容是(没有空格) -
如果我写,我得到 (有空格)- 没有空格
我确定没有表格列内的那个空间
请帮忙data
bstory
console
lorem ipsum
lorem ipsum
data = data.trim()
解决方案
我将尝试解释您遇到的问题。执行 PHP 代码时,在回显之前和回显输出之后可能会有一些空格、行和其他符号。将被退回。因此,您应该做的事情是确保您在标记之前没有任何空格或线条,<?php
并在回应您的响应后立即退出,例如 echo$st->fetchColumn(); exit;
或类似的东西。
如果您将结果输出为 JSON 字符串(即将获取的 DB 行转换为 JSON 字符串并将响应标头设置为),则所有这些不便都可以省去application/json
;您data
实际上将是一个数组或对象,并且在 JSON 解码期间,$.post
即使您有空格或其他所谓的空符号,它们也会被自动剥离或忽略。{}
对于 JSON 解析器,字符串 is或 it is没有显着差异 {}
;
我希望我描述得很好。
现在您知道为什么传递 JSON 作为响应比传递简单字符串更好。
推荐阅读
- ruby-on-rails - 当 MRP 大于 999 时,MRP 价格字段值除以 1000,同时更新 Spree (ROR) 中的值
- python - 运行 Python 容器时 Docker “不支持的语言环境设置”
- azure - 如何向 SQL 数据库添加新列?
- c# - C# - 以天、小时和分钟计算 SLA,不包括非工作时间、周末和公共假期
- primefaces - Primefaces 6.1 p:inputTextarea 取消展开文本框
- javascript - 减少重复代码,尝试将函数分配给变量 - 不起作用
- html - 验证 HTML 输入字段
- javascript - 无痛脚本中的未定义变量
- java - 如何修复“类实例的标识符已从 id 更改为 null”(Java)
- arrays - 如何在matlab中用三个一维数组绘制3d网格图