在codeigniter中json中还有其他字符


there are other characters in json in codeigniter

我想在使用ajax和json对codeigniter输入数据到数据库后显示信息。但是json返回的数据包含双引号字符("),下面的控制器和视图ajax在codeigniter me.

控制器:

public function simpanMenuMakanan() {
    $nama_makanan = $this->input->post('nama-menu-makanan');
    $harga_makanan = str_replace(".", "", $this->input->post('harga-makanan'));
    $jenis_makanan = $this->input->post('jenis-makanan');
    $data = array(
        'nama_makanan' => $nama_makanan,
        'harga_makanan' => $harga_makanan,
        'id_jenis_makanan' => $jenis_makanan
    );
    $simpan = $this->makanan_model->tambahMenuMakanan($data);
    if ($simpan) {
        $result = $nama_makanan . ' berhasil ditambah ke list menu makanan';
        echo json_encode($result);
    }
}

查看javascript ajax:

        $.ajax({
            type: 'POST',
            url: "<?php echo base_url(); ?>makanan/simpanmenumakanan",                        
            data: $(this).serialize(),               
            success: function(html){
                // other statement                   
                $('#result').text(html);
                // other statement
            }
        });

在我提交后,它会出现信息"xxx berhasil ditambah ke list menu makanan",但问题是有一个双引号字符,我想把这样的信息没有任何双引号xxx成功添加到食物列表菜单

如果$nama_makanan不是数组,你想从php返回字符串,那么你不需要使用json_encode(),只是试着做:

//in your function
$result = $nama_makanan . ' berhasil ditambah ke list menu makanan';
echo $result;

变化

 echo json_encode($result);

 echo $result;
 return false;

json_encode用于数组,特别是多维关联数组。对于字符串或任何字符或二进制字符,不需要…

$('#result').text(JSON.parse(html));

在ajax成功回调实现你想要的结果吗?

然而,它看起来不像你真的返回JSON(我不熟悉CodeIgniter,所以我可能会读错),所以你可以只是返回原始字符串,然后你就不需要JSON.parse.