我的问题是当我在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
访问它,或者我会从另一个函数调用变量?
有人可以帮我这个吗?
答案 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(){
}
});
}
});
});