2013-02-13 96 views
1

這個函數,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); ?>); 
         }      
       }); 

回答

2

你硬編碼的用戶變量在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

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的一面)會返回一個數組(或對象)與一個關鍵'用戶'=>數組(用戶1,用戶2等);

相關問題