我有一个奇怪的问题,我无法追查。我正在使用Codeigniter和Jquery来创建ajax搜索功能。
一切运行良好,我的模型返回了正确的数据,但是当我从控制器加载视图时,它在响应中有页面标题。
我尝试加载一个空视图,但仍然包含页面标题。
我的javascript功能就像这样
function filter(id)
{
var str = "test";
var series = {}; //init array
data['id'] = id;
var url = "/baseurl/controller/methodName";
$('#result').load( url, data, function(str){} );
}
然后,在我从模型中检索结果后,从我的控制器中,我只需加载视图
$this->load->view("results", $data);
任何帮助或提示指出我正确的方向将非常感激。
如下所述,回复是:
</head>
<body>
<div id="container">
<div id="wrapper">
<div id="header">
</div>
<!-- end header --> <!-- Menu -->
<div id="menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Testimonials</a></li>
<li class="last"><a href="#">Links</a></li>
</ul>
<div id="sub-menu">
<ul>
<li><a href="#">Profile</a></li>
<li class="last"><a href="#">Privacy</a></li>
</ul>
</div>
</div>
<!-- End Menu -->
测试Ajax
</div><!-- end houses -->
如上所示,结果div中的信息是来自视图的内容,但上面的所有内容都是额外信息。这是我试图更新的div上方的其余页面
亲切的问候 本
答案 0 :(得分:1)
正在使用压缩吗?如果您尝试从CodeIgniter config.php
关闭它编辑:
选项1: 如果您正在接收ajax呼叫,可以从您的方法中进行检查。尝试创建这个帮手:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
function is_ajax()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
}
?>
然后尝试在您的方法中执行此操作:
if (is_ajax())
{
// do your thing
}
else
{
$this->load->view('your_view');
}
这有望解决这个问题......
选项2。
你可以只回显和html字符串,例如“您的数据”而不是加载视图
答案 1 :(得分:0)
现在我感觉很愚蠢,代码与响应一起显示的是在父类中加载的视图。
我的坏。
感谢所有帮助,is_ajax()函数绝对是一个帮助。
此致 本