codeigniter передает значение из одного представления контроллера в другое представление контроллера, используя ajax - PullRequest
0 голосов
/ 28 мая 2020
• 1000 1005 *

Просмотр панели управления

 <a class="vendor_click_redeem_page"  data-id="123">Test</a>  

AJAX

  $( document ).ready(function() {
  $('.vendor_click_redeem_page').click(function(){
       var vendors_id =  $(this).attr("data-id");
        $.ajax({
            url: "redeem/index",
            type: "POST",
            dataType: "text",
            data: {vendors_id: vendors_id},
           success: function(text) {
                window.setTimeout(function() {
                    window.location.href = "redeem/index"
                }, 1500)
            }
        //return false;
    });

});

Redeem Controller

class Redeem extends CI_Controller
{


public function __construct()
{
    parent::__construct();
    $this->load->database();
    $this->load->helper('url');
    $this->load->model("Redeem_model");


}

public function index()
{
     if($this->input->post('vendors_id') && $this->session->userdata('user_id') !="") {
           $data['vendor_id']= $this->input->post('vendors_id');
           $page_data['page_name'] = "redeem/redeem";
           $page_data['asset_page'] = "redeem";
           $this->load->view('front/redeem/index', $data);

       } else {
           redirect('/');
       }

}

} ​​

Активировать просмотр

<?php echo $vendors_id;?>

1 Ответ

0 голосов
/ 28 мая 2020

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

В codeigniter вы можете возвращать представления как данные , которые получают ваш идентификатор через контроллер. Затем вы можете вывести данные просмотра, чтобы отправить их на свой Ajax успех. Здесь вы берете этот текст и обновляете заданный вами элемент dom

, чтобы собрать все вместе:

view:

<a class="vendor_click_redeem_page"  data-id="123">Test</a>
<div class"vendor_html"></div>

контроллер:

public function index()
{
     if($this->input->post('vendors_id') && $this->session->userdata('user_id') !="") {
           $data['vendor_id']= $this->input->post('vendors_id');
           $page_data['page_name'] = "redeem/redeem";
           $page_data['asset_page'] = "redeem";
           echo $this->load->view('front/redeem/index', $data, true);

       } else {
           redirect('/');
       }

}

Ajax:

$.ajax({
            url: "redeem/index",
            type: "POST",
            dataType: "text",
            data: {vendors_id: vendors_id},
            success: function(text) {
                $('.vendor_html').html(text);
        }

Внимание: в вашем примере кода просмотра есть опечатка : должно быть <?php echo $vendor_id;?>;

документы: jQuery Ajax

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