我希望在使用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已成功添加到食物菜单列表。
答案 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 强>