Ako získať hodnoty z vlastného formulárového prvku?

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

Ahojte, snažím sa vytvoriť si vlastný formulárový prvok, avšak nedarí sa mi po odoslaní formulára si zvolenú hodnotu získať …

Factory, kde vytváram formulár:

<?php
class OrderFactory extends Nette\Object {

    public function createOrderForm() {

	Nette\Object::extensionMethod('Nette\Forms\Container::addDate', function($form, $id, $label = NULL) {
		return $form[$id] = new \App\BaseControls\DateTimeExtension($label);
	});

	$form = new Form;
	$form->addText("pes");

	$form->addDate("datetime", "Datetime label");

	$form->addSubmit("send", "SEND");
	$form->onSuccess[] = [$this, "orderForm"];

	return $form;

    }


    public function orderForm(Form $form) {
	dump($form->getValues());
    }

}
?>

Vlastný formulárový prvok:

<?php
class DateTimeExtension extends \Nette\Forms\Controls\BaseControl {

   public function loadHttpData()
    {
         $this->value = $this->getHttpData(\Nette\Forms\Form::DATA_TEXT, "[items]");
    }

    function getControl() {

	$html = \Nette\Forms\Helpers::createSelectBox($this->items)
		->setValue($this->value)
		->name("[items]");


	return $html;
    }

}
?>

Mali sme to s @DavidGrudl na školení, ale nedarí sa mi to rozchodiť …
Ďakujem.

David Matějka
Moderator | 6445
+
0
-

tim ->name() zcela prepises nazev inputu v html. Maximalne co chces, tak je appendnout nejaky nazev, viz priklad..

ale v tomhle pripade myslim ani nemusis nic takovyho nastavovat..

iNviNho
Člen | 352
+
0
-

David Matějka napsal(a):

tim ->name() zcela prepises nazev inputu v html. Maximalne co chces, tak je appendnout nejaky nazev, viz priklad..

ale v tomhle pripade myslim ani nemusis nic takovyho nastavovat..

Yes @DavidMatějka Ďakujem, hned som vyriešil aj ďalší problém nastavenia zadanej hodnoty po odoslaní formulára .)