formular – vytiahnutie hodnot do selectu

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

Zdravim, prosim vas, neviem si rady, ako vytiahnut z presenteru udaje do select boxu v latte.
Budem vdacny za vsetky rady.

v Presenteri mam vytvoreny formular so selectom.
Select sa naplna vytiahnutim dat z DB (nasledne fetchPairs).

    protected function createComponentEditorForm()
    {
        $result = $this->stationsManager->getCenters();
            $centers = $result->fetchPairs('idcenter', 'centerName');

        $form = new Form;
        $form->addHidden('idstation');
        $form->addSelect('center_idcenter', 'Stredisko:', $centers);
        $form->addText('city', 'Mesto*')->setRequired();
        $form->addText('description', 'Popis');
        $form->addText('departureTime', 'Čas odchodu zo zastávky*')
            ->setRequired();
        $form->addSubmit('submit', 'Uložiť zastávku');
        $form->onSuccess[] = [$this, 'editorFormSucceeded'];

        return $form;
    }

dalej v latte manualne vykreslujem formular

<form n:name=editorForm class=form>
                                        <div n:if="$form->hasErrors()" class="callout callout-warning">
                                            <h4>Chyba!</h4>
                                            <p n:foreach="$form->errors as $error">{$error}</p>
                                        </div>
                                            <div class="form-group">
                                              <label n:name=center_idcenter>Stredisko*</label>
                                              <select class="form-control">
                                                    <option></option>
                                              </select>
                                            </div>
                                            <div class="input-group">
                                              <label n:name=city>Mesto*
                                                <div class="input-group">
                                                  <input class="form-control" n:name=city>
                                                  <div class="input-group-addon">
                                                    <i class="fa fa-building"></i>
                                                  </div>
                                                </div>
                                              </label>
                                            </div>
                                            <div class="input-group">
                                                <label n:name=description>Popis
                                                  <div class="input-group">
                                                      <input class="form-control" n:name=description>
                                                      <div class="input-group-addon">
                                                      <i class="fa fa-commenting-o"></i>
                                                      </div>
                                                  </div>
                                                </label>
                                            </div>
                                            <div class="bootstrap-timepicker">
                                                <div class="form-group">
                                                  <label>Čas odchodu zo zastávky*
                                                      <div class="input-group">
                                                        <input n:name=departureTime type="text" class="form-control timepicker">
                                                        <div class="input-group-addon">
                                                          <i class="fa fa-clock-o"></i>
                                                        </div>
                                                      </div>
                                                  </label>
                                                </div>
                                              </div>
                                            <p><input n:name=submit class="btn btn-primary"></p>
                                        </form>

Editoval majo1 (29. 1. 2016 10:04)

ViPEr*CZ*
Člen | 822
+
+2
-

Nad tím selectem chybí n:name atribut.
Cituji z dokumentace:

Atribut n:name lze používat i s elementy <select>, <button> nebo <textarea> a vnitřní obsah se automaticky doplní.

majo1
Člen | 103
+
0
-

aha, taka banalna chyba.. prehliadol som to.
dakujem velmi pekne za radu.

mozno to je trosku OT, ale zapisujem cez ten formular aj cas vo formate HH:MM (vo formulari ako departureTime)
zapis do db funguje iba v pripade, ze stlpec departureTime je typu timedate. ale ja by som rad evidoval len cas. ked zvolim typ stlpca TIME, tak tracy hadze error.
prosim vas, ako sa toto bezne riesi?

dakujem

CZechBoY
Člen | 3608
+
0
-

http://dev.mysql.com/…en/time.html
takže zkus vložit jako HH:MM:SS

majo1
Člen | 103
+
0
-

upravil som formát času v inpute, teraz zapisovanie nového dátumu do DB funguje.

keď chcem ale upraviť záznam, kde je tento dátum zapásaný,
vypíše nasledovné:

Nette\InvalidArgumentException
Value must be scalar or NULL, object given in field ‚departureTime‘
.

neviem, kde môže byť chyba :/

Editoval majo1 (29. 1. 2016 10:02)

ali
Člen | 342
+
0
-

Tvuj db manazer ti tuto hodnotu vytahne z db jako objekt. Dumpni si to a uvidis co to je za objekt.. jestli se jedna o Datetime, tak pak vkladej takto:

$time->format("H:i")