Codeigniter使用Ajax从一个控制器视图向另一个控制器视图传递值

时间:2020-05-28 20:00:07

标签: ajax codeigniter controller

我正在处理要将dashboard a href data-id传递给redeem index的Web应用程序,但是问题是redeem index在Windows定位后没有显示值vendors_id href兑换视图?

仪表板视图

 <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;
    });

});

兑换控制器

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 :(得分:0)

在您的Ajax成功中,您正在重定向。这不是Ajax方式,您通常只想操作一些DOM,而其他所有内容保持不变。

在codeigniter中,您可以return views as data,它通过控制器获取您的ID。然后,您可以输出视图数据以将其发送给您的Ajax成功。 在那里,您可以获取该文本并更新要记住的dom元素

将它们放在一起:

视图:

<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