在codeigniter中json中还有其他字符

时间:2012-12-25 11:55:49

标签: php json codeigniter jquery

我希望在使用codeigniter上的ajax和json将数据输入数据库后显示信息。从json返回的数据包含双引号字符(“”),以下控制器并在codeigniter中查看ajax。

控制器:

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已成功添加到食物菜单列表

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

更改

 echo json_encode($result);

 echo $result;
 return false;

json_encode用于数组,特别适用于多维关联数组。对于字符串或任何字符或二进制字符,它不是必需的......

答案 2 :(得分:0)

确实

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

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

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