php - 在行数据中包含特殊字符

标签 php jquery json ajax

我从数据库中带回的一些记录包含撇号。

各种记录的名称如下:

CC CHÂTEAU D'IF

检查元素,数据属性如下所示:

data-vesselname="CC CHÂTEAU D" IF'

我需要数据属性如下所示:

data-vesselname="CC CHÂTEAU D'IF"

这是 ajax 调用:

$.ajax({
  url: 'api/searchVoyageInfo.php',
  type: 'POST',
  data: '',
  dataType: 'html',
  success: function(data, textStatus, jqXHR){
    var jsonObject = JSON.parse(data); 
    var table = $('#example1').DataTable({
      "data": jsonObject,
      "columns": [{ 
        "data": "",
        "fnCreatedCell": function (nTd, sData, oData, iRow, iCol)
        {
          $(nTd).html("<a href='#' title='Edit Account' class='modAccount'
          data-vesselname='"+oData.VESSEL_NAME+"'>Edit</a>");       
        }
       },
       { "data": "ANOTHER_COLUMN" },
       { "data": "ANOTHER_COLUMN" },
       // SEVERAL MORE COLUMNS
      ] 
});

我删除了许多对于这个问题来说不必要的代码。您可以在上面看到 data-vesselname 属性。问题似乎就发生在那里。

我尝试执行以下操作:

data-vesselname='"+escape(oData.VESSEL_NAME)+"'

但是在检查该元素后,我看到了这一点:

data-vesselname="CC%20CH%C2TEAU%20D%27IF"

最佳答案

您需要转义附加字符串中的引号。您可以手动执行此操作,也可以让 jQuery 为您执行此操作:

"fnCreatedCell": function(nTd, sData, oData, iRow, iCol) {
  $('<a />', {
    'href': '#',
    'title': 'Edit Account',
    'class': 'modAccount',
    'data-vesselname': oData.VESSEL_NAME,
    'text': 'Edit'
  }).appendTo(nTd); 
}

关于php - 在行数据中包含特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811095/

相关文章:

php - Wordpress多用户、自定义数据库、使用全局wpdb时潜在的并发问题

php - 模拟 PDO 获取失败的情况

jquery - Tooltipster 插件 - 将工具提示放置在中心

javascript - 启动 IText 内联编辑滚动到页面顶部 - Fabric.js

java - 使用 JAX-RS 将 JSON 查询参数转换为对象

javascript - HTML ul/li 按钮表单提交

forms - jquery.form.js 无法在 Internet Explorer 9 中运行

ruby - 在 Ruby 中,MongoDB 返回一个 BSON::OrderedHash。如何将其转换为 JSON?使用 to_json 会出现 "stack level too deep"错误

android - 失败 : Build failed with an exception gradle

php - 如何隐藏/删除提交按钮上的文本?