在一段时间后使用ajax调用php函数

时间:2013-12-23 09:57:03

标签: php ajax codeigniter

您正在开展codeigniter项目。我希望在10秒的间隔后执行一个php函数。当用户在10秒后访问该特定页面时,我希望执行php功能。在php函数中,我设置了一个计数器,它将特定表中的1加到database中。我尝试过使用AJAX,但没有得到理想的结果。请向我解释我的例子,因为我是ajax的新人。提前谢谢......

4 个答案:

答案 0 :(得分:0)

试试这个

setTimeout(function(){
    $.ajax({
    url: "<?php echo base_url('your/controller/address');?>",
   type: 'post',
   data: {"token": "your_token"},
});

}, 10000);

实施例

在您的视图中

$(document).ready(function(){

setTimeout(function(){
    $.ajax({
    url: "<?php echo base_url('MyController/Mymethod');?>",
   type: 'post',
   data: {"token": "12majid18"},
 });

 }, 10000);

});

并在你的控制器中写这样的方法

public function Mymethod()
{
   $token = $this->input->post('token');

   if ( $token == '12majid18' )
     {
        /*call your model and insert your data in Table*/
     }
 }

答案 1 :(得分:0)

@Majid Golshadi的答案是正确的答案。

工作版本在这里

请在视图中一直加载(例如header_view.php

添加这几行

<script type="text/javascript">
        var _baseUrl = "<?= base_url() ?>";
</script>

这使得base_url可以在JavaScript页面的任何位置使用(但请务必将其放在页面“TOP”的某处)

并以这种方式使用@Majid Golshadi的回答

$(document).ready(function() {
    setTimeout(function() {
        $.ajax({
        url: _baseUrl + "/your/controller/param",    
        type: 'post',    
        data: {"token": "your_token"}, });   
    }, 10000);
});

答案 2 :(得分:0)

使用jquery这将是最简单,最快速的方法

`//将超时设置为3秒= 3千毫秒

 setInterval(function(){
     //ajax call
      $.ajax({
         url: _baseUrl + "/controller_name/function_name/",   //the url where you want to fetch the data 
         type: 'post', //type of request POST or GET    
         data: {"data": "value"}, }); //data passed to controller
 },3000);`
您可以使用

在控制器中

function function_name(){
    $var = $this->input->post();//getting data passed from ajax
    //process here...
    echo json_encode($var)//parses and returns the processed value
 }

答案 3 :(得分:0)

你可以试试这个:

window.jQuery(function(){
var y=setInterval(function() {
        window.jQuery.post(url,{"token": "your_token"},function(res){
        alert(res);
   });   
 }, 10000);
});