Select option key=value bez definování pole s klíči

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Xorii
Člen | 4
+
0
-

Zdravím,

řeším problém, kdy nemohu definovat pole jako:
public $countries = Array("Austria" => "Austria", "Brazil" => "Brazil")

ale musím ho definova takto:
public $countries =["Austria", "Brazil"]

Je nějaký jednoduchý způsob jak zajistit, aby value jednotlivých optionů se rovnala hodnotám vypsaným? Tzn. aby vzniklo <option value="Austria">Austria</option> a ne <option value="0">Austria</option>

Díky za tipy

CZechBoY
Člen | 3608
+
+1
-

@Xorii

$form->addSelect('')
	->setItems($items, false); // $useKeys = false
Pavel Kravčík
Člen | 1196
+
+1
-

Proč musíš? Je to zvláštní logika.

$newArray = [];
foreach($array as $value)
{
	$newArray[$value] = $value;
}
Xorii
Člen | 4
+
0
-

Bylo mi řečeno, že kdyby se upravovala jedna country, tak se musí hned na dvou místech.

Teď form vypisuju takhle:

$form->addSelect("country", "Latency from", $this->countries)
                ->setRequired('');

@CZechBoY podle tebe mám dát za $this->countries false?

stpnkcrk
Generous Backer | 190
+
+2
-

@Xorii V tvém případě bude řešení postnuté @CZechBoY vypadat takto

$form->addSelect("country", "Latency from")
    ->setItems($this->countries, false)
    ->setRequired('');