我正在编写一些代码。这是我的代码
jQuery
duration = 30;
var countdown = setInterval(timer,1000);
var url = window.location.origin + '/pro/index.php/Test';
function timer(){
duration = duration - 1;
if(duration<=0){
clearInterval(countdown);
window.location(url+'/next');
}
}
我想重定向并运行Test/next
中的函数。在next()
方法中,它将确定链接的位置。 url
助手也已自动添加到Loader
控制器
public $num;
public $val;
public function index(){
// get the value from GET method
$this->num = $this->input->get('num');
$this->val = $this->input->get('val');
}
public function next(){
$x = $this->num;
$x = $x + 1;
if($x < 4){
redirect(site_url('index.php/Test?x='.$x/.'&num='.$this->num));
}
else{
// it will redirect to another page
// redirect(site_url('index.php/Home'));
echo 'x = '.$x.', num = '.$this->num;
}
(上面的代码已简化)。
该方法已运行,但URL为localhost/pro/index.php/Test/next
并回显:
x =,num =
似乎全局属性对于从JS / jQuery调用的函数不起作用。有任何解释或解决方案吗?
答案 0 :(得分:0)
您可以从视图页面访问控制器功能,也可以使用基本URL( Click here how to do it? )。 然后使用jQuery Ajax调用控制器功能。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$.ajax({
type: 'post', url: '<?php echo base_url("next");?>',
data: {},
success: function(result){
console.log(result);
}
});
答案 1 :(得分:0)
您需要ajax调用。 在您的查看文件中
<button class="call_ajax" name="submit">Call Ajax</button>
<script type="text/javascript">
$('.call_ajax').click(function(){
var value1 = 'some data';
var value2 = 'some data';
$.ajax({
url: '<?php echo site_url('your_controller/your_function'); ?>',
type: 'POST',
data: {
key1: value1,
key2: value2
},
dataType: 'json',
success: function(url) {
window.location.href = url;
}
});
});</script>
在您的控制器中
your_function(){
$data1 = $this->input->post('key1');
$data2 = $this->input->post('key2');
// do Data Processing
// For return some data ;
echo "https://some-webiste-url/";
// FOR Array
echo json_encode($any_data_array);
}
注意:从ajax调用的controller函数将不会进行重定向。如果要定向到其他URL,则必须在Javascript部分使用
进行操作。