【问题标题】:jquery.autocomplete.js JSON.parse: unexpected character at line 1 column 1 of the JSON datajquery.autocomplete.js JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符
【发布时间】:2017-03-16 09:55:54
【问题描述】:

我正在尝试使用 jquery.autocomplete.js 进行自动完成。不幸的是,当我尝试输入任何内容时,调试器出现了 SyntaxError: JSON.parse: unexpected character at line 1 column 1 JSON 数据。 我还是 codeigniter 的新手,所以有人可以帮我解决这个问题吗?

Java 脚本

<script type='text/javascript'>
    $(function(){
      $("#asisten").autocomplete({
        source: "<?php echo base_url() ?>index.php/asisten/search"
      });
    });
</script>

控制器

public function search()
{   
    $keyword = $this->uri->segment(3);

    $data = $this->db->from('mahasiswa')->like('nim',$keyword)->get();  

    foreach($data->result() as $row)
    {
        $arr['query'] = $keyword;
        $arr['suggestions'][] = array(
            'nama'  =>$row->nama
        );
    }

    echo json_encode($arr);
}

输入 HTML

<input id="asisten" type="search">

JSON 数据

{"query":"7","suggestions":[{"nama":"Pedro Nadirio"},{"nama":"Antony Hartono"},{"nama":"Juan"},{"nama":"Yonathan Aditya"},{"nama":"Edwin Widhiyanto"},{"nama":"Windy Hendra S"}]}

【问题讨论】:

  • 您能告诉我们正在生成的 JSON 数据吗?
  • 针对 JSON 数据编辑

标签: jquery codeigniter autocomplete


【解决方案1】:

在您的控制器中:尝试这样..

public function search()
    {   
        $keyword = $this->uri->segment(3);

        $data = $this->db->from('mahasiswa')->like('nim',$keyword)->get();  

        foreach($data->result_array() as $row)
        {
         $arr[] = $row['nama'];//array of namas
        }
        echo json_encode($arr);
    }

【讨论】:

  • 别忘了先加载url helper。
  • 还是一样,反正当我尝试点击jquery.autocomplete.js时,它指定我这个js代码 var result = typeof response === 'string' ? $.parseJSON(response) : 响应;
猜你喜欢
  • 2021-09-14
  • 2016-01-30
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2019-05-11
  • 2017-05-18
  • 2020-04-17
相关资源
最近更新 更多