Ako získať hodnoty z vlastného formulárového prvku?
- iNviNho
- Člen | 352
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
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
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 .)