2011-11-29 19 views

Odpowiedz

14

Jego faktycznie oczywista odpowiedź:

$countryList = Mage::getModel('directory/country')->getResourceCollection() 
                ->loadByStore() 
                ->toOptionArray(true); 

również sprawdzić http://fishpig.co.uk/magento-tutorials/list-countries-for-drop-down-in-magento uzyskać więcej informacji na temat tworzenia rozwijanych list i takie z listy kraj.

+0

D'uh! Miałem "opcje" zamiast "opcji". Dziękuję za tak szybkie udzielenie mi odpowiedzi i cieszę się, że przynajmniej próbowałam upaść z literówką! –

+0

Ustawienie parametru metody toOptionArray na wartość True powoduje również dodanie pustego elementu jako pierwszego elementu w tych krajach. Jakoś w moim przypadku miał etykietę "1", nie wiem dlaczego. – Zsolti

+1

Dowiedz się, dlaczego pojawił się "1". "ToOptionArray" akceptuje jeden parametr, który jest albo False, albo ciąg znaków, który będzie etykietą pierwszego - pustego - elementu. Kiedy więc ustawisz True jako parametr, otrzymasz "(string) True", który jest "1". – Zsolti

0
<?php 
$_countries = Mage::getResourceModel('directory/country_collection') 
                    ->loadData() 
                    ->toOptionArray(false); 
        $allowed = Mage::getStoreConfig('general/country/allow'); 
       if (count($_countries) > 0) { ?> 
      <div class="input-box"> 
             <select name="country" id="country" class="validate-select" title="Country" > 
             <option value="">-- Please Select --</option> 
    <?php foreach($_countries as $_country){ 
              if(!in_array($_country['value'],explode(',',$allowed))){ 
               continue; 
              } ?> 
              <option value="<?php echo $_country['value']; ?>" <?php echo $formData['country'] == $_country['value'] ? ' selected="selected"' : '';?>> 
               <?php echo $_country['label'] ?> 
              </option> 
             <?php 
             } ?> 
            </select> 
           <?php } ?> 
Powiązane problemy