【问题标题】:Datatables remove backslash(\) characters from data数据表从数据中删除反斜杠(\)字符
【发布时间】:2016-09-03 20:11:36
【问题描述】:

这是我使用 Datatables jQuery 插件通过 AJAX 向服务器发送数据的代码:

$('#allLessonAttachmentsTable').DataTable({
    processing: true,
    serverSide: true,
    "bSort": false,
    "responsive": true,
    ajax: {
        url: 'http://lms.dev/admin/getFilesList',
        data: function (d) {
            d.id = '8',
            d.type = 'App\Lesson'
        }
    },
    columns: [
        {data: 'checkbox', name: 'checkbox', "width": "20px"},
        {data: 'picture', name: 'picture', 'className': 'text-center'}
    ]
});

如您所见,发送到服务器的type 参数包含一个\(反斜杠)字符。但是当我在 Laravel 中检索它时,后端的反斜杠字符被删除了。

什么是问题以及为什么要删除它?

【问题讨论】:

  • 在发帖之前先看看它是怎么来的。这就是为什么你有一个叫做预览的东西。

标签: php jquery datatables


【解决方案1】:

JavaScript 使用 \ 作为转义字符。您可能需要使用 \\ 来转义它。将您的代码更改为:

d.type = 'App\\Lesson'

在控制台本身中,您可以看到 JavaScript 如何处理 \\\

如果整个东西是由PHP生成的,你可以尝试使用PHP的函数addslashes()来生成字符串友好的输出。

【讨论】:

  • d.type 参数使用类似这样的 laravel 方法生成:d.type = '{!! get_class($lesson) !!}'
  • @A.B.Developer 您需要更改生成它的代码以提供双重` or escape the `s。在 PHP 中,我们有一个名为 addslashes() 的函数。为什么不试试呢?
猜你喜欢
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 2021-09-14
  • 1970-01-01
相关资源
最近更新 更多