2012-05-21 3 views
2

내가 상관없이 내가하는 일, 새로운 값을하지 않습니다 배열을 제외한 모든 공업과 멋쟁이배열 추가하지, 마지막 값을 교체 [PHP]

$this->cart = array(); 

를 사용하여 설정 PHP 배열을 가지고 , 기존 값을 새로운 값으로 바꿉니다.

나는 array_merge, array_push 및 다른 것들을 시도했으며 똑같은 일이 발생하지만 이것은 일 수있는 코드입니다.

$this->cart[]=$input; 

처음 사용될 때이를 배열 "어레이 ([0] ="1 "의 하나 개의 아이템 이 표시됩니다 사용되는 두 번째 시간에 상기 제 1 값을 대체하는"배열 (도 말할 [0] => 2) "

추가 값은 ID를 당기고 값으로 배열에 넣는 가진 폼에 의해 트리거되는

echo '<input type="hidden" name="addeditem" value="2">'; 

하지만없이, 그것이를 추가하지 않을 어떤 코드 배열, 그것을, 모든 아이디어를 바꿉니다. 나는 creati뿐만 아니라 키와 값을 추가하려고했습니다. 두 번째 배열을 병합하고 병합하면 아무것도 작동하지 않습니다. 쇼핑 카트에 추가 할

기능은 해결이

function addToCart($input){ 
$this->cart[]=$input; 
$this->setCartCount(); 
} 

입니다 : 주석을 참조하십시오.

+3

는 귀하의 배열은 아마 다른 곳에서 다시 설정되고있다. –

+0

새 항목을 추가하기 전에 배열을 다시 작성하지 않았는지 확인하십시오. 새 항목을 추가하기 직전에 값을 버리십시오. 이미 실제로 하나의 항목이 있습니까? –

+0

알았습니다! 샘 듀펠 (Sam Dufel)은 그것을 테스트 한 결과 어딘가에서 테스트를 마쳤습니다. 세션에서 어레이를 제거하고 시작될 때마다 리셋하는 페이지로 옮겼습니다. 답변을 게시하면 내가 확인해 드리겠습니다. – alpha1

답변

-1

이름은 다음과해야합니다 addeditem[]

+0

아니에요. $ itemId = $ _POST [ 'addeditem']; 이 $ ShoppingCart-> addToCart ($ itemId)를 실행합니다. – alpha1

+0

이쪽으로 $ _POST [ 'addeditem']; 모든 숨겨진 입력 값을 포함하는 배열이됩니다. – erdeszt

0

당신은 $ this-> 카트 전역 변수와 배열이 addToCart와 전화를 할 때마다 생성되지 않는다는 것을인지 확실()?

시험해보십시오. 같은 :

  1. public class cart{ 
    
        private $items; 
        function __construct() { 
        $items=array(); 
        } 
        public function addToCart($item){ 
        $this->items[]=$item; 
        } 
    } 
    
  2. 코드에서 다른 곳 카트에 상품을 추가 카트 개체가 있습니다.

    $cart=$manager->getCart(); 
    $cart->addToCart($your_new_item);