$ .get данные из представления Codeigniter - PullRequest
0 голосов
/ 09 февраля 2012

Мой js-скрипт

jQuery(".unblock").click(function(){
        var num = jQuery('.page.active').text();
        var ban_id = jQuery(this).attr('id');

        jQuery.get("http://127.0.0.1/auth_system_1/user_activity/delete_user_ban", { ban_id : ban_id, num : num }, function(data) {

                jQuery("#ban_list").append(data);

        }, "json");

    });

Моя функция delete_user_ban

function delete_user_ban()
{
    $user_id = $this->session->userdata('user_id');

    $ban_id = $this->input->post('ban_id');

    $current_page = (int)$this->input->post('num');

    //$this->activity_model->delete_user_ban($ban_id);

    $per_page = 2;

    $data['ban_list'] = $this->user_activity_lib->user_ban_list($user_id, $current_page, $per_page);

    $this->load->view('front_end/ajax_delete_ban', $data);

} 

и я хочу вернуть ее сюда

<!--begin ban list-->
<div id="ban_list">
            <?php foreach($ban_list as $value): ?>
      <div class="comment-box small-comment" id="info-ban-1">
          <div class="photo-box">
       <img src="<?=$value['user_image'];?>" alt="" class="photo rounded"/>
       <a href="#" title="" class="corner rounded"></a>
          </div>
          <div class="comment rounded">
       <div class="bg-tl"></div>
       <div class="avatars">
           <a href="#" title=""><?=$value['user'];?></a><span>blocked</span><a href="<?=base_url() . $value['ban_user'];?>" title=""><img src="<?=$value['user_ban_image'];?>" alt=""/><?=$value['ban_user'];?></a>
           <a href="[removed];" title="Unblock" class="unblock" id="<?=$value['ban_id'];?>">unblock</a>
       </div>
          </div>
          <div class="both"></div>
      </div>
            <?php endforeach; ?>

            </div>
      <!--end ban list-->
      <?=$pagination;?>
         </div> 

Что я могу сказать, все работаетхорошие, КРОМЕ данных не возвращаются.

Если я удаляю эту строку в функции:

$this->load->view(‘front_end/ajax_delete_ban’, $data);

и добавляю echo '1';

, она возвращает туда, куда я хочу '1'но содержимое отсюда $ this-> load-> view (' front_end / ajax_delete_ban ', $ data);не вернуться к этому div?Почему?

Я наблюдал ответ и html, что возвращают, а вот строки html, возвращаемые из представления (без ошибок), но не отображаются в JQuery(”#ban_list”).append(data);

Мой .get работает хорошо, но только возвращаетодним словом, также ищет ответ и HTML в Firebug он показывает возвращенные строки, но не добавить его в div?

Я сделал несколько тестов:

echo '1111';

вернуть ОК!

echo '1111 2222';

не вернуть?

Как вернуть более одного словаа где моя ошибка?

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Вы смешиваете get и post, не так ли?

Либо измените ваш jQuery на $.post()

, либо измените ваш PHP на $this->input->get();

Вытакже используя 'json' в вашем вызове $ .get (), но возвращая HTML.

Вы должны json_encode для вашего представления.

Вы можете передать логический третий параметр $this->load->view(), который вернетHTML-код в виде строки.

$myHTML = $this->load->view('front_end/ajax_delete_ban', $data, true);
echo json_encode(array("html" => $myHTML));

Затем в функции обратного вызова jQuery вы можете получить html, используя data.html

0 голосов
/ 09 февраля 2012

Попробуйте вместо этого:

jQuery("#ban_list").append($('<div></div>').html(data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...