ajax和codeigniter重复标头

时间:2009-12-07 04:52:26

标签: jquery ajax codeigniter

我有一个奇怪的问题,我无法追查。我正在使用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上方的其余页面

亲切的问候 本

2 个答案:

答案 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()函数绝对是一个帮助。

此致 本