Explorer, formulář a nervy ;-)
- grovik
- Člen | 76
Mám zajímavou situaci.
Jednoduchý formulář pro přidání položky do DB a zároveň nastavení konkrétního uživatele k té dané položce.
public function createComponentAddOblastForm(): Form
{
$data = $this->database->table('users');
foreach($data as $row)
{
$selectUsers = [$row->user_id => $row->name];
}
bdump($selectUsers);
$form = new Form;
$form->addSelect('uzivatel', 'uzivatel',$selectUsers)
->setPrompt('Uživatel...');
$form->addText('oblast', 'Oblast:');
$form->addSubmit('send', 'Přidat');
$form->onSuccess[] = [$this, 'addOblastFormSucceeded'];
return $form;
}
Metoda vypadá takhle:
public function getUsersSelect()
{
return $this->database->table('users')->where('ban = 0')->order('name DESC');
}
Problém je, že do SELECTU se vygeneruje jen jedno OPTION:
<form n:name="addOblastForm">
<label for="oblast">Oblast:</label>
<input type="text" n:name="oblast" required>
<label for="uzivatel">Uživatel:</label>
<select n:name="uzivatel">
</select>
<button class="btn btn-success" n:name="send" type="submit">Přidat</button>
</form>
Zkoušel jsem tam i jinou metodu, která je použita se stejnou šablonou a jinde vrací seznam uživatelů, ale jak jí použiju ve formuláři dostanu prostě buď jednoho nebo taky třeba žádného.
Nejsmutnější je, že podle Tracy se vygeneruje 6 záznamů.
Zkoušel jsem položky do selectu vkládat i takhle
{foreach $users as $userr}
<option {if $locale->user_id == $userr->user_id}selected{/if} value="{$userr->user_id}">{$userr->name}</option>
{/foreach}
Což v šabloně o kus dál normálně funguje.
Už se s tím trápím dva dni a prostě nevím. Asi je někde něco špatně,
ale já za boha nemůžu přijít na to co.