ajax и дублирующий заголовок codeigniter - PullRequest
0 голосов
/ 07 декабря 2009

У меня странная проблема, которую я не могу отследить. Я использую 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 -->

Тест Аякс
            </div><!-- end houses -->

Как показано выше, информация в div результатов - это содержимое, полученное из представления, но все содержимое, приведенное выше, является дополнительной информацией. Это остальная часть страницы над div я пытаюсь обновить

С уважением Бен

Ответы [ 2 ]

1 голос
/ 07 декабря 2009

Используете ли вы сжатие? Если вы пытаетесь отключить его из CodeIgniter config.php

EDIT:

Вариант 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 строку, например. «ваши данные» и не загружается представление

0 голосов
/ 07 декабря 2009

хорошо, теперь я чувствую себя глупо. Код, показанный вместе с ответом, был представлениями, которые были загружены в родительский класс.

Мой плохой.

Спасибо за помощь, и функция is_ajax () определенно помогает.

С уважением Ben

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...