如何在加载页面后重新填充一个变量

问题描述:

这个函数,ajax ......每件事情都很好。
当我想重新加载$用户时,它返回相同的$用户
加载ajax重新加载$用户新数据后有什么办法吗?如何在加载页面后重新填充一个变量

控制器

function list_of_users_by_skills($project_ids){ 

     $project_id = json_decode($project_ids); 
      /* Generate Users by Skills 
      * By Isaac 
      */ 
      $this->loadModel('Training');        

      //Get list of users by skills 
      $users_return = $this->Training->find('all', array('conditions' => array('Training.Project_id' => $project_id))); 

      //some code here to return the $users :) 

      asort($users); 
      $this->set('users', $users);        
    } 

查看

var page = 'http://localhost/index.php/shifts/list_of_users_by_skills/[176,196]/'; 
       console.log(page); 

       $.ajax({       
         url: page,       
         success: function(data) { 
          <?php echo "var user_array = [" . json_encode($users) . "];\n"; ?> 
          console.log(user_array);  
          console.log(<?php echo json_encode($users); ?>); 
         }      
       }); 

你硬编码的用户变量在JavaScript:

<?php echo "var user_array = [" . json_encode($users) . "];\n"; ?> 

这仅会被填满,在初始页面请求。

你需要确保你正在使用AJAX调用脚本,返回实际的用户列表,并使用:

喜欢的东西:

$.ajax({       
     url: page, 
     dataType: "json",      
     success: function(data) { 
      var user_array = data; 
      console.log(user_array); 
     }      
}); 

和你page脚本应该这样做这在最后:

echo json_encode($users); 
+1

Yeyyyy !!!!!!谢谢一些。我之前打印了一些HTML标签,以便为其他事情进行回顾。它像魅力一样工作。 ;) – Fury 2013-02-13 16:25:33

+0

@Vahid Rajaei好听:-) – jeroen 2013-02-13 16:26:25

你推的更迭回调相同user_array ...

你应该函数之前声明var和覆盖VAR功能{

var page = 'http://localhost/index.php/shifts/list_of_users_by_skills/[176,196]/'; 
var users = [<?php echo json_encode($users); // or make in an array so json_encode is sufficient ?>]; 
$.ajax({       
    url: page,       
    success: function(data) { 
     users = data.users; 
    }      
}); 

你是网关(PHP的一面)会返回一个数组(或对象)与一个关键'用户'=>数组(用户1,用户2等);