我有一个简单的问题。
我正在研究Zend框架2。
我正在尝试通过传递booking_id来进行AJAX调用以从表booking
获取所有预订数据。麻烦的是,查询因未知原因而失败。实际查询很复杂,当我将$ booking_id替换为实际的booking_id时,它的工作正常,如#224;' 22432'。因此,我认为查询很好,还有其他一些问题。
但我不知道如何在Ajax调用中获取查询错误/异常。有人可以帮我这个吗?
使用Javascript:
$.post("dashboard/getBookingDataByBookingId", {
booking_id: bookingId,
},
function(data){
if(data.response == true) {
alert(data);
} else {
alert('failed');
}
}, 'json');
控制器
public function getBookingDataByBookingIdAction()
{
$request = $this->getRequest();
$response = $this->getResponse();
if ($request->isPost())
{
$post_data = $request->getPost();
$booking_id = $post_data['booking_id'];
$booking_data = array();
$booking_data = $this->getBookingTable()->getBookingByUserIdAndBookingId($booking_id);
if (!$booking_data)
$response->setContent(\Zend\Json\Json::encode(array('response' => false, 'booking_data' => $booking_data)));
else {
$response->setContent(\Zend\Json\Json::encode(array('response' => true, 'booking_data' => $booking_data)));
}
}
return $response;
}
bookingTable模型具有公共功能:
public function getBookingByUserIdAndBookingId($booking_id)
{
$sql = "Select * from booking where id='".$booking_id."';
try {
$statement = $this->adapter->query($sql);
$res = $statement->execute();
return $res->current();
} catch (Exception $ex) {
return $ex;
}
}
答案 0 :(得分:0)
您正在发布名为'id'的变量:
{
id: bookingId,
}
所以你应该以:
的形式访问它$post_data = $request->getPost();
$booking_id = $post_data['id'];
或更简洁:
$booking_id = $request->getPost('id');
您还应该使用参数化查询来避免SQL注入。
答案 1 :(得分:0)
对于在Ajax调用中获取错误/异常,请使用:
在Google Chrome中使用: POSTMAN 扩展程序
在FireFox用户中: FIREBUG 插件