我有以下控制器:
public function getPrice()
{
$id = $this->input->post('q');
$data['price'] = $this->emodel->get_peUniformPrice($id);
echo json_encode($data);
}
输出:
"{\"price\":[{\"Price\":\"250\"}]}"
我怎样才能像250一样?我的jQuery:
function showPrice(size) {
$.ajax({
type: "POST",
url: "<?php echo site_url('enrollment/getPrice/');?>",
data: {
q: size
},
success: function(data) {
$("#txtpeUniform").val(data);
},
});
}
答案 0 :(得分:2)
$.ajax
方法会自动将字符串反序列化为对象,因此您只需访问所需的属性即可。假设您只想检索price
数组中返回的第一个价格,您可以直接通过索引访问它。试试这个:
success: function(data) {
$("#txtpeUniform").val(data.price[0].Price); // = 250
},
答案 1 :(得分:2)
我可以看到你正在使用jQuery ..如果你想把json对象变成一个javascript对象,你可以做类似的事情
var convertedObject = $.parseJSON($data);
alert(convertedObject.Price);
这实际上是将您的Json字符串转换为javascript对象,您可以引用该属性并从这些属性中获取值。让我再举一个例子
var jsonString = {'Firstname':'Thiren','Lastname':'Govender'};
var jObject = $.parseJSON(jsonString);
console.log(jObject.Firstname) // this will output Thiren.
console.log(jObject.Lastname) // this will output Govender.
修改你的代码
function showPrice(size) {
$.ajax({
type: "POST",
url: "<?php echo site_url('enrollment/getPrice/');?>",
data: {
q: size
},
success: function(data) {
console.log(data); // make sure this is returning something..
$("#txtpeUniform").val(data);
},
});
}
我希望这可以帮助你......
此致