获取控制器中的变量并将ajax重定向url包含到另一个控制器函数中

时间:2014-05-13 08:31:33

标签: php ajax codeigniter

我的问题是当我在POST中使用ajax Controller后,我在Model收集数据后,我的下一步是访问View,但遗憾的是它无效,我只在firefox中的inspect元素中查看它。 这是我的示例代码:

public function view_generate_jo_number()
    {
            $jo_num    =   $this->input->post('jo_num');
            $view_generated = $this->project_models->view_generate_jo_number($jo_num);
            $this->load->view('templates/header');
            $this->load->view('jo_generated_project_views', $view_generated);
            $this->load->view('templates/footer');
    }

所以我再次想到另一个解决方案,即我有这个ajax ..当成功时它会重定向到同一个控制器中的另一个函数。

$("#view").click(function()
    {
        $.ajax({
            url : '<?php echo base_url('jo_generator/view_generate_jo_number')?>',
            type: 'POST',
            data: {
                    jo_num: $('#new_jo').text()
                  },
            success: function(data){
                $.ajax({
                url : '<?php echo base_url('jo_generator/view_jo_number')?>',
                success: function(){
                }
                });
            }
            });
    });

但我的问题出在我的第一个控制器上:

public function view_generate_jo_number()
    {
        if ($this->jo_generator_security_models->isAllowedToViewGenerateJO() === TRUE)
        {
            $jo_num    =   $this->input->post('jo_num');
            $view_generated = $this->project_models->view_generate_jo_number($jo_num);
        }
    }

我想获取变量$ view_generated,以便我可以在另一个函数中使用它:

public function view_jo_number($view_generated)
    {
            $this->load->view('templates/header');
            $this->load->view('jo_generated_project_views', $view_generated);
            $this->load->view('templates/footer');
    }

因为我需要该变量来查看视图中的数据。

有没有办法可以使用success in ajax访问它,或者我会从另一个函数调用变量? 有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

您可以返回变量并将其传递给成功函数:

public function view_generate_jo_number()
    {
        if ($this->jo_generator_security_models->isAllowedToViewGenerateJO() === TRUE)
        {
            $jo_num    =   $this->input->post('jo_num');
            $view_generated = $this->project_models->view_generate_jo_number($jo_num);

            return $view_generated;
        }
    }

-

$("#view").click(function()
    {
        $.ajax({
            url : '<?php echo base_url('jo_generator/view_generate_jo_number')?>',
            type: 'POST',
            data: {
                    jo_num: $('#new_jo').text()
                  },
            success: function(data){
                // use data for what ever you want. It should be the return value of view_generate_jo_number
                $.ajax({
                url : '<?php echo base_url('jo_generator/view_jo_number')?>',
                success: function(){
                }
                });
            }
            });
    });