1

这个函数,ajax ......每件事都运行良好。
当我想重新加载 $users 时,它返回相同的 $users
在加载 ajax 后有什么方法可以用新数据重新加载 $users 吗?

控制器

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); ?>);
                      }                      
                }); 
4

2 回答 2

2

您已经在 javascript 中硬编码了 users 变量:

<?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);
于 2013-02-13T16:11:44.183 回答
1

您在成功回调上推送相同的 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 方面)将返回一个数组(或对象),其键为 'users' => array(user1, user2 etc etc);

于 2013-02-13T16:08:36.333 回答