2011-11-29 6 views
6

posso ottenere i paesi in questo modo:Magento - Come ottengo un elenco di tutti i Paesi ammessi in optionsarray?

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

e sono elencati in qualche parte l'oggetto, ma, come faccio a loro toOptionsArray fuori?

che sto cercando solo le opzioni per il sito piuttosto che lista completa
vale a dire che voglio l'Angola, l'Antartide e così via fuori dalla lista. (. Siamo spiacenti angolani e pinguini)

risposta

14

La sua realtà la risposta ovvia:

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

Verificate anche http://fishpig.co.uk/magento-tutorials/list-countries-for-drop-down-in-magento per ulteriori informazioni sulla creazione di elenchi a discesa e così con la lista dei paesi.

+0

D'uh! Ho avuto "opzioni" invece di "opzione". Grazie per avermi dato una risposta così in fretta, e sono contento di aver almeno provato a cadere con un refuso! –

+0

L'impostazione del parametro del metodo toOptionArray su True aggiunge anche un elemento vuoto come primo elemento dei paesi. In qualche modo nel mio caso aveva un'etichetta "1", non so perché. – Zsolti

+1

Scopri perché è apparso il "1". "ToOptionArray" accetta un parametro, che è False, una stringa che sarà l'etichetta per il primo elemento - vuoto. Quindi, quando metti True come parametro, otterrai "(string) True" che è "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 } ?> 
Problemi correlati