2013-11-15 2 views
0

Я пытаюсь использовать twitter pagination в использовании JQuery. У меня есть страница поиска (содержит форму), которая будет запрашивать базу данных и отображать ее на странице результатов поиска.Добавление данных в тег div внутри содержимого с помощью jquery

Когда я пытаюсь попасть в Div метка (кнопку Дополнительно в следующей странице) в коде ниже, он должен добавить только данные #results вместо вся страница загружается вместе с #content прилагаемых данными, которая выглядит то же страницу перекрывая друг друга. Логика загрузки данных из базы данных и загрузки соответствующих результатов при нажатии кнопки More. Единственная проблема заключается в отображении результатов правильно

Вот мой код

<body> 
    <?php $this->load->view('includes/topbar'); ?> 
    <?php $this->load->view('includes/menu'); ?>  
    <?php $this->load->view('includes/left'); ?>   

    <div id="contentwrap"> 
    <div id="content"> 

     <div id="results"> 
       <?php 
       foreach($this->data['latest_messages'] as $message) 
       { 
        echo $message->uacc_email . ' - ' . '<br />'; 
       } 
       ?> 
     </div> 
    <div id="more_button"> 
     More 
    </div> 
    </div>  
    </div> 
    <?php $this->load->view('includes/right'); ?> 
    <?php $this->load->view('includes/foot'); ?> 
</body> 

Вот код для моего JQuery в <head> разделе. auth_public/get_results/ получит результаты из базы данных.

<script type="text/javascript"> 
     $(document).ready(function(){ 
     var num_messages = <?=$num_messages?>; 
     var loaded_messages = 0; 
     $("#more_button").click(function(){ 
      loaded_messages += 10; 
      $.get("<?php echo $base_url;?>" + "auth_public/get_results/" + loaded_messages, function(data){ 
       $("#results").append(data); 

      }); 

      if(loaded_messages >= num_messages - 10) 
      { 
       $("#more_button").hide(); 
       //alert('hide'); 
      } 
     }) 
    }) 
</script> 

Я пробовал использовать пролет. Но не повезло, что поведение такое же. Кто-нибудь помогает в этом?

+0

вы смотрели в Devtools, чтобы увидеть, что вызов Ajax является Ретур нин? Похоже, что он возвращает полную html-страницу, и вам нужно извлечь содержимое '# results' перед добавлением. – jammykam

+0

И опубликуйте код из get_messages.php – jammykam

ответ

1

ваша проблема с get_results, я предполагаю, что это возвращает результат, как HTML вместо вывода JSON как «jammykam» упоминается

перейти к auth_public ищет функции get_results и заменить выходную линию, которая должна выглядеть как этот $this->load view($your_view,$data);

или это $this->parser->parse($your_view,$data);

с echo json_encode($data);

+0

Прохладный .. Он работает отлично, но отображает весь объект json. Как я могу переформатировать? – vkrams

+0

@Vikram использовать parseJSON() jquery –

+1

извините за поздний ответ, вы можете закодировать данные в массиве внутри вашего 'get' ex:' var length = data.length; для (var i = 0; i aemad

Смежные вопросы