2014-09-21 64 views
0

我有2个按钮在我笨观点一个观点:笨点击按钮来调用视图

<div class="btn-main col-md-3 col-md-offset-3"> 
     <button id="simu-mono" type="button" class="btn btn-default">SIMULATION MONO SITE</button> 
    </div> 
    <div class="btn-main col-md-3"> 
     <button id="simu-multi" type="button" class="btn btn-default">SIMULATION MULTI SITE</button> 
    </div> 

我想调用另一个控制器推出接着一个视图按钮被点击

我尝试了呼叫控制器由JavaScript simu_mono,推杆上/controller/simu_mono.php但没有按” T工作

$(document).ready(function(){ 
    $("#simu-mono").click(function(){ 
     type:'GET', 
     url:'simu_mono' 
    }); 

    $("#simu-multi").click(function(){ 

    }); 
}); 

simu_mono.php:

<?php 
class simu_mono extends CI_Controller { 

    public function index() 
    { 
      $this->load->view('simu_mono'); 
      echo 'Hello World!'; 
    } 
} 
?> 

感谢您的帮助

干杯

+0

?或使用模态显示视图。 – Kyslik 2014-09-21 11:19:19

+0

嗨,Kyslik,只是重定向到一个url – dtjmsy 2014-09-21 11:29:25

回答

0

你没有做你的JavaScript中的任何类AJAX调用的。我假设你正在使用jQuery,因此,您的通话应该是这样的:

$("#simu-mono").click(function(){ 
    $.ajax({ 
     url: "http://your-url.com/controller/method", 
     type: 'post',  // <- Or get option, whatever you prefer 
     dataType: 'json', // <- This is important to manage the answer in the success function 
     //data: { param1: "value1", param2: "value2"}, <- You could add here any POST params you wanted 
     success: function(data){    
      if (data.view) { 
       $('#here_view').html(data.view); // <- '#here_view' would be the id of the container 
      } 
      if (data.error){ 
       console.log(data.error); 
      } 
     } 
    }); 
}); 

这将调用你的方法,你必须表明你要传递的观点:

<?php 
class simu_mono extends CI_Controller { 

    public function index() 
    { 
     $return = array(
      'view' => $this->load->view('simu_mono') 
     ); 

     echo json_encode($return); 
    } 
} 
?> 

json_encode将允许您轻松地将PHP和数据从PHP传递到您的JavaScript,并在客户端视图中管理它们。正如你在javascript中看到的,我添加了data.error,这是为了防止你有更多的逻辑,也许改变你发送的视图,发送错误,如果你发送数据,并想要控制它们等。

当然,在你的JavaScript你可以从点击按钮的URL,并在 parat的成功功能,你可能会在屏幕上打印一个模式,发送视图到一个容器,无论你想要的,XD

+0

嗨chococroc,你在网址中输入什么:“http://your-url.com/controller/method”控制器是控制器的名称? – dtjmsy 2014-09-21 11:35:59

+0

我把网址:“http://www.dev2one。com/simu_mono/index“,没有成功 – dtjmsy 2014-09-21 11:42:34

+0

请在将来忘记你的控制器中的索引方法(我的意思是当你去dev2one.com/simu_mono时得到相同的结果,因为CodeIgniter框架首先查找索引函数,除非有)' – Kyslik 2014-09-21 11:45:40

1

请,如果ü要重定向只使用下面的代码:

$(document).ready(function(){ 
    $("#simu-mono").click(function(){ 
     window.location = base_url + "/simu_mono"; 
    }); 

    $("#simu-multi").click(function(){ 
     window.location = base_url + "/simu_multi"; 
    }); 
}); 

请注意,您可能需要base_url,U SE这个片段上面加载BASE_URL在JavaScript变量

<script> 
    base_url = <?= base_url()?> 
</script> 

放代码在某种视图(在执行任何其他的JavaScript代码之前),其总是被加载

附加步骤将是建立对路由照顾丑陋的下划线(_)

类似的:

routes.php文件

$route['simu-mono'] = "simu_mono"; 
$route['simu-multi'] = "simu_multi"; 

这种方式你去你的网页和控制方式如下:yourserver.ufo/simu-mono和你想只重定向到URL yourserver.ufo/simu-multi

+0

嗨,我试过了,你的解决方案,但当我连接到我的页面http:// localhost/phpexcel/simu_mono,我有错误消息Objet找不到! – dtjmsy 2014-09-21 13:10:40

+0

请让一个jsfiddle并显示行 – Kyslik 2014-09-21 15:33:09