2014-04-29 4 views
0

I 클래스의 개체에 액세스하려고 다음 아약스 POST와 함수를 호출하고 빈 배열을 반환하지만 어떤 이유로 내가 여기 PHP는 아약스 호출

내 코드 인 클래스 함수를 호출 후 NULL을 얻고있다 두 번째 아약스 호출
include_once dirname(__FILE__).'/../db/_mysql.php'; 
include_once dirname(__FILE__).'/../class/door.php'; 

$db = new _mysql(); 

if (isset($_POST['door'])) { 
    if ($_POST['door'] == 'get-default') { 
     $doors = array(); 
     for ($i = 0; $i < $_POST['amount']; $i++) { 
      array_push($doors, array(
       'door-id' => $i, 
       'panel-colors' => 'valkoinen' 
       ) 
      ); 
     } 
     order_door::setDoors($doors); 
    } 

    if ($_POST['door'] == 'get-doors') { 
     print_r(order_door::getDoors()); 
     $doors = order_door::getDoors(); 
     if ((int) $_POST['total-count'] > count($doors)) { 
      echo $_POST['total-count'] . '>' . count($doors); 
     } else if ((int) $_POST['total-count'] < count($doors)) { 
      echo $_POST['total-count'] . '<' . count($doors); 
     } 
    } 
} 

class order_door { 

    private static $doors; 

    public static function getDoors() { 
     return self::$doors; 
    } 
    public static function setDoors($array) { 
     if (count($array) == 0) { 
      self::$doors = array(); 
     } else { 
      self::$doors = $array; 
      print_r(self::getDoors()); 
     } 
    } 

} 

내가 얻을-문을 을 POST 얻을-문에서 print_r에 액세스하려고 (order_door :: getDoors()); 아무것도 인쇄하지 않습니다. 어떤 아이디어?

+0

아약스 요청은 어디에 있습니까 –

답변

0

는 실제로 이런 일을해야하는지, 당신은 그래서 당신은 하나 개의 아약스 요청을 설정하고 기본값으로 재설정됩니다 다른에 전화를

private static $doors; 

에 데이터를 가지고 있지 않았다.

이 동작을 수정하려면이 데이터를 예를 들어 SESSION에 저장해야합니다.

+0

내 배열을 SESSION에 저장하는 것이 좋습니다. 내가 왜 그런 생각하지 않았던가 = P 고마워! 하지만 그냥 아약스와 함께 할 수 있습니다 궁금 .. 또는 매번 null로 배열을 다시 설정하는 것입니다 – Hene