2014-02-25 4 views
1

Ну, в первую очередь привет всем!) И спасибо заранее!AJAX Post - Codeigniter

Ну, моя проблема в следующем. Я создаю сеть с помощью codeigniter, bootstrap и jquery, и у меня возникают проблемы при загрузке нового представления.

Когда я хочу загрузить новый просмотр после сообщения, я не могу этого сделать. Если я не сделаю сообщение, все будет хорошо, и $this->load->view('template', $data); правильно откроет следующую страницу.

Дело в том, что если я сделаю сообщение AJAX из представления, допустим, что я хочу перейти на предыдущую страницу с помощью кнопки. Поэтому я сделать

$('#backlink').click(function() { 

      $.ajax({ 
       type: 'post', 
       url: url + "select_campus_controller/index", 
       success: function(data) { 
        console.log(data); 
       } 
      }); 

     }); 

Это придется открыть новый вид с индексом метод контроллера, который вызывает новый взгляд

public function index() { 
    $data = array(); 
    $data['content'] = "v_select_campus"; 
    $data['title'] = "Select faculty"; 
    $this->load->view('template', $data); 
} 

Дело в том, что вместо того, чтобы открыть новый вид я только получаю все html в данных, и я не могу открыть страницу. Должен ли он открыть его напрямую или мне нужно что-то сделать?

Издание:

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

$this->load->view('template', $data); 

Я звоню template.php, что делает совершенно новую страницу:

<?php 

$this->load->view('includes/header'); 

$this->load->view($content); 

$this->load->view('includes/footer'); 

?> 

и $data['content'] = "v_select_campus"; я выберите раздел, который я хочу, чтобы загрузить в середине страницы. Но вместо того, чтобы получать страницу, я получаю всю страницу как строку в успехе сообщения.

Я не уверен, если я понять его правильно все вид вещь ...

+1

написать данные из ответа ajax success на элемент –

+1

И если я загружаю всю страницу с помощью $ this-> load-> view ('template', $ data); что я делаю? – user3086937

+0

, если вы хотите открыть новую страницу, просто используйте window.open в успехе ajax –

ответ

0

Попробуйте это,

$('#backlink').click(function() { 

      $.ajax({ 
       type: 'post', 
       url: url + "select_campus_controller/index", 
       success: function(data) { 
        $('$div1').html(unescape(data)); 

       } 
      }); 

     }); 


<div id="div1"></div> 

тогда вид «шаблон» будет diaplayed на DIV с id описание товара div1.

+0

Я предполагаю, что это для обновления специализированного div, но я хочу загрузить целую новую страницу, которую я получаю как строку в успехе data ... – user3086937

0

Вы можете напрямую перенаправлять страницу на кнопках Нажмите, С помощью запроса AJAX вы можете обновить содержимое элемента, Загрузка вида выполняются на стороне сервера по коду Ingiter

+0

Любая догадка о том, как я могу загружать представления, когда я делаю сообщение? Или это невозможно? – user3086937

+0

На базовой странице, откуда вы отправляете запрос ajax, создайте div как держатель места для вывода HTML, получая от url + «select_campus_controller/index», т. Е. Ответ ajax и загрузку, который выводится в заполнителе, используя следующее: $ ('# div_id') .html (данные); –

0

Вы можете сделать некоторые вещи, как это:

$('#backlink').click(function() { 

      $.ajax({ 
       type: 'post', 
       url: url + "select_campus_controller/index", 
       success: function(data) { 
        $('html').html(data); 
       } 
      }); 

     }); 
0

Попробуйте это, в представлении загрузки воспламенителя кода вы можете пройти третий параметр.

public function index() { 
    $data = array(); 
    $data['content'] = "v_select_campus"; 
    $data['title'] = "Select faculty"; 
    $d = $this->load->view('template', $data,TRUE); 
    echo $d 
} 

Надеюсь, что это поможет решить вашу проблему.

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