当我单击每个按钮的ID时,如何从数据库中获取数据 我的控制器功能
public function ajax (){
$resultdata = $this->Booking_model->roominfo();
echo json_encode($resultdata);
}
这是带有数据室ID和类的按钮
<button class="bkng bkn-room trans_200" data-room-id ="1">BOOK NOW</button>
这是我的模特
public function roominfo() {
//if(isset($_POST["id"]))
//{
$sql = "Select name, price from rooms WHERE room_id = 'id'";
$result = $this->db->query($sql);
return $result->result_array();
//}
我的ajax jQuery及其按钮类和data-room-id
$(document).ready(function() {
$(".bkng").on("click", function(event) {
event.preventDefault();
var id = $(this).data('room-id');
console.log(id);
if(id != '')
{
$.ajax( {
type:"get",
url : "Pages/ajax",
data:{id:id},
success:function(data)
{
alert(data);
result = JSON.parse(data);
$('#test1').append(result[0]['name']);
$("#test2").append(result[0]['price']);
$("#test3").append(result[0]['price']);
console.log(data);
}
});
}
});
});
它总是在控制台错误中指出Uncaught TypeError:无法读取未定义的属性'name'
答案 0 :(得分:1)
您收到此错误,因为您的查询未返回任何内容,因为您可能没有id = 'id'
的位置。因此,JSON.parse返回此错误。
因此,首先您需要修复模型以构建有效的查询,例如:
function roominfo() {
$id=$_POST["id"];
$query=$this->db->select('name, price')
->where('room_id', $id)
->get('rooms');
return ($query->num_rows())? $query->result_array():false;
}
然后在您的ajax成功中,您可以检查返回的数据:
console.dir(data)
而不是使用alert或console.log,因为它们不会显示数组结构
您还应该检查是否未返回任何数据(假):
type: 'POST',
success:function(data)
{
console.dir(data);
if (data){
result = JSON.parse(data);
$('#test1').append(result[0]['name']);
$("#test2").append(result[0]['price']);
}
else
{
$('#test1').append('no records found']);
}
}