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

How to refill a variable after loading page

本文关键字:新填充 填充 变量 加载      更新时间:2023-09-26

这个函数,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); ?>);
                      }                      
                }); 

您已经在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);

您正在successs回调上推送相同的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;
    }                      
}); 

如果您是gateway(PHP方面),则会返回一个数组(或对象),其中包含一个关键字"users"=>数组(user1、user2等);