TinyMCE link_list SyntaxError:JSON.parse

时间:2017-08-22 17:21:47

标签: javascript json tinymce tinymce-4

TinyMCE可以在链接窗口中加载link_list

我正在尝试插入PHP生成的列表,但是我收到以下错误:

  

SyntaxError:JSON.parse:第1行第1列的意外字符   JSON数据1 tinymce.min.js:17:105005

TinyMCE init看起来像这样:

tinymce.init({
  selector: 'textarea',
  language: 'nl',
  plugins: [
    'advlist autolink lists link image charmap print preview hr anchor pagebreak',
    'searchreplace wordcount visualblocks visualchars code fullscreen',
    'insertdatetime media nonbreaking save table contextmenu directionality',
    'template paste textcolor colorpicker textpattern codesample TR_image_from_server code'
  ],
  menubar: false,
  height: '25em',
  toolbar1 : 'undo redo | insert | styleselect | bold italic underline strikethrough superscript subscript | alignleft aligncenter alignright alignjustify',
  toolbar2 : 'table | bullist numlist | indent outdent | anchor link | media TR_image_from_server | forecolor backcolor',
  link_list: 'link_list.php',
  link_title: false,
  target_list: false
});

link_list.php的路径有效。

link_list.php:

<?php
require '../Database.php';
$db = new Db();

$dbData = $db->query('SELECT', 'pages', '*', 'ORDER BY id DESC');
$pages = array();

foreach($dbData as $i => $v) {
    $pages[] = array(
        'title'=> $v['title'],
        'value' => $v['id']);
}
$string = json_encode($pages);
header('Content-Type: application/json');

echo $string;
?>

这导致了这个JSON:

[
  {
    "title": "Test",
    "value": 20
  },
  {
    "title": "Dit is een tekst pagina",
    "value": 19
  },
  {
    "title": "pagina",
    "value": 18
  },
  {
    "title": "dit is de derde pagina",
    "value": 3
  },
  {
    "title": "Foto's",
    "value": 2
  },
  {
    "title": "Home",
    "value": 1
  }
]

我也尝试过应用其他标题(text,html,javascript),但错误仍然存​​在。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我为此苦了一段时间。解决方案是确保所有键和值都用双引号引起来。不要使用大括号甚至单引号。示例:

[
  {
    "title": "Test",
    "value": "20"
  }
]

您可以在此处测试您的输出:https://jsonlint.com/

从技术上讲,不必引用数字。我认为这可能是tinymce的link_list插件中的错误。