我正在开发一个Web应用程序,我正在将jquery集成到其中...现在用jquery查找ajax调用到我的控制器函数....
我认为 jquery.ajax()
会很有用......但是如何调用我的控制器方法......
$.ajax({
type: "POST",
url: "http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails",
data: "",
contentType: "application/json; charset=utf-8",
async: false,
dataType: "json",
success: function(jsonObj) {
function loadbookdetails()
{
//Paging
$college=$_SESSION['college'];
$this->load->library('pagination');
$data['bookdetails'] = $this->librarymodel->selectbook($college);
//$data['rackOptionData'] = $this->librarymodel->selectrack();
if(empty($data['bookdetails']))
{
$data['comment'] = 'no record found!';
}
$this->load->view('bookdetials',$data);
}
我在此处获取此记录如何将其与jquery.ajax()
函数一起使用以及如何将$data
转换为json并将其与jquery一起使用并使用表格迭代...
答案 0 :(得分:4)
你不能直接将jQuery连接到PHP函数,因为它们不能同时运行:PHP在服务器端执行(通常生成HTML页面),jQuery在客户端运行。 / p>
你可以让jQuery对PHP页面的URL进行Ajax调用。该PHP页面将是所需的控制器,并执行所请求的操作。
是否有预先定义的方法取决于您使用的PHP Framework(如果有)。
答案 1 :(得分:1)
对于PHP> = 5.2.0,您可以使用json_encode()。你的代码看起来像这样:
$this->load->view('bookdetails', json_encode($data));
可以找到关于CodeIgniter + AJAX的一系列参考文献here。
答案 2 :(得分:0)
如果您已经拥有view/bookdetials.php
然后你需要的是(而不是你的javscript代码):
在页面上的某处添加div
,如下所示:
<div id="ajax-palaceholder"></div>
然后添加此javascript代码:
<script type="text/javascript">
$(document).ready({
$('#ajax-palaceholder').load('http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails');
});
</script>
这将在页面加载时执行ajax请求,然后将加载的内容放入div#ajax-palaceholder
答案 3 :(得分:0)
Ajax请求必须与php脚本联系。该脚本必须返回数据。 您使用json作为响应格式:
dataType: "json",
因此,对于您的示例,只有输出表单脚本必须是json。它不能比json更多。
您的serwer脚本(bookdetials视图)将如下所示:
//Initialise data
$bookdetails = ...
// json encode data
echo json_encode( $bookdetails );
// make sure nothing else go to the output
???
??? - 取决于系统。通常你必须在这里阻止pagelayout。
json作为回应很好但是对于大多数情况来说,HTML是......