PHP MYSQL JQUERY - 在项目符号后插入换行符

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (97)

我会尝试更清楚地提出这个问题,因为显然我以前的问题不够明确。

我有一个页面,用户在HTML textarea中输入注释。最近,用户在评论中一直包括要点。

以下是用户如何使用项目符号在HTML textarea中输入注释:

我希望到目前为止我已经清楚了。

现在,在保存注释后,以下是注释在数据库中的外观:

我在数据库中包含了其他列,以便明确有多个条目包含带有项目符号的注释。

返回数据,然后将注释显示到JQuery数据表单元格中时,注释将完全按照下图所示显示:

如果您注意到图片,则项目符号将以段落形式显示,而不是像最初在HTML文本区域中输入时那样分开。

我需要做的是在数据表单元格中出现的每个项目符号点之后添加一个LINE BREAK,以便它看起来像最初输入的那样。

我不确定我是否需要使用MySQL来执行此操作,但以下是查询数据库时PHP / MySQL的外观:

<?php
include("../include/database.php"); 

$select = "SELECT pk, region, loctype, city, twenty, twenty_comm FROM eqpstatus";   
$query = mysqli_query($dbc, $select);

$out = array(); 
while($row = $query->fetch_assoc())
{
    $out[] = $row;
}
echo json_encode($out);
?>

我不确定是否有办法检查MySQL查询中的项目符号。如果有办法,请告诉我。

在JQuery方面,这是数据表返回页面的方式(尽可能缩短):

var newData = 'process/eqpGuide.php'; 

$('#example1').DataTable({      
"ajax": {
    "url": newData,
    "type": "POST",
    "dataSrc": ''
},
"columns": [
  {"data": "region"},
  {"data": "loctype"},
  {"data": "city"},
  {"data": "twenty"},
  {"data": "twenty_comm"} // here is where I need to check for bullet points
],
"iDisplayLength": 25,
"order": [[ 1, "desc" ]],
"paging": false,
"scrollY": 550,
"scrollX": true,
"bDestroy": true,
"stateSave": true,
"autoWidth": true 
});   

因此,为了重申我提到的所有内容,我需要做的只是数据库的twenty_comm部分,即在每个项目符号点后添加LINE BREAK。我不确定是应该还是可以在代码的PHP / MySQL部分中完成,或者是否可以在数据表中的JQuery端完成。

将它置于问题形式:如何在PHP / MySQL或JQuery中的项目符号后添加LINE BREAK?

提问于
用户回答回答于

我猜你的意思是你想在子弹之前添加换行符和之后的一些空格?不可能知道以后是,除了刚下一个子弹之前。您可以使用列render回调:

{ data: 'twenty_comm' ,
  render: function(data) {
     return data
       .replace(/•/g,'•&nbsp;&nbsp;')
       .replace(/(?!^)(•)/g, '<br>\$1')
  }
}

第一个正则表达式只是用子弹和两个空格替换子弹(或middot)。接下来是插入<br>子弹之前的负前瞻,除了第一次出现。

http://jsfiddle.net/cj6nk8yz/

由于荒谬的downvotes,当你删除第一次尝试时,我实际上正在准备答案:(

用户回答回答于

EDITED

我认为最好的办法是在用户提交文本时添加新行...在保存到DB之前。但这是一种意见。

第二个最好的事情是在服务器端执行字符串操作,因为依赖客户端的设备(我删除的最不好的解决方案......)在服务器上做可行的事情被认为是不好的做法。

尝试这个:

<?php
include("../include/database.php"); 

$select = "SELECT pk, region, loctype, city, twenty, twenty_comm FROM eqpstatus";   
$query = mysqli_query($dbc, $select);

$out = array(); 
while($row = $query->fetch_assoc())
{
    $row['twenty_comm'] = implode("<br>•",explode("•",$row['twenty_comm']));
    if(substr($row['twenty_comm'],0,4)=="<br>"){
        $row['twenty_comm'] = substr($row['twenty_comm'],4);
    }

    $out[] = $row;
}
echo json_encode($out);
?>

扫码关注云+社区

领取腾讯云代金券