Pridanie HTML prvku do formulára

pisa98
Člen | 17
+
0
-

Potreboval by som vlozit HTML element ako mam v tom foreachi. Chcem aby sa mi to vykresľovalo pri každom inpute a neviem ako to spraviť. Nikde sa o tom nemôžem dočítať.

/**
 * Component category form
 *
 * @return Form
 */
protected function createComponentContactForm()
{
    $id = $this->presenter->getParameter('id');
    $contact = $this->contactsRepository->get(['id' => $id]);
    $contacts = $this->contactsRepository->find();
    $children = $this->contactsRepository->buildTree($contacts, $id);

    $form = new Form;

    $form->addText($contact->name, '');
    $form->setDefaults([$contact['name'] => $contact['value']]);

    foreach ($children as $key => $value) {
        $form->addText($value['name'], $value['title']);

        $form->setDefaults([$value['name'] => $value['value']]);
        echo Html::el('a')->href("deleteContact!, name = $key")->setText('delete');

    }

    $form->addSubmit('send', 'Save');

    $form->onSuccess[] = [$this, 'onSubmit'];

    return $form;
}
David Matějka
Moderator | 6445
+
0
-

slo by asi udelat nejaky custom prvek, ktery bude pouze vykreslovat input, ale imho bude lepsi pouzit manualni vykreslovani

ali
Člen | 342
+
0
-

@pisa98 ja si kvuli takovymhle vecem vytvoril k formulari vlasti control, ktery dokaze vlozi odkaz do formulare, tak se muzes inspirovat jak na to nebo rovnou pouzit moje reseni:
https://github.com/…ols/Link.php

matopeto
Člen | 395
+
0
-

nejde pouzit setDescription a tam vlozit do neho dane html cez Html:: triedu?

Daco ako:

<?php

$form->addText($value['name'], $value['title'])
->setDescription(Html::el('a')->href("deleteContact!, name = $key")->setText('delete'));

?>

Samozrejme ti nebude fungovat to „deleteContact!“ tam si musis ten odkaz vytvorit, ale to je uz o inom. Manualne vykreslovanie to isti

Editoval matopeto (27. 7. 2017 19:01)

pisa98
Člen | 17
+
0
-

matopeto napsal(a):

nejde pouzit setDescription a tam vlozit do neho dane html cez Html:: triedu?

Daco ako:

<?php

$form->addText($value['name'], $value['title'])
->setDescription(Html::el('a')->href("deleteContact!, name = $key")->setText('delete'));

?>

Samozrejme ti nebude fungovat to „deleteContact!“ tam si musis ten odkaz vytvorit, ale to je uz o inom. Manualne vykreslovanie to isti

nefunguje to takto nepozna metodu setDescription

Editoval pisa98 (27. 7. 2017 19:46)

pisa98
Člen | 17
+
0
-

matopeto napsal(a):

nejde pouzit setDescription a tam vlozit do neho dane html cez Html:: triedu?

Daco ako:

<?php

$form->addText($value['name'], $value['title'])
->setDescription(Html::el('a')->href("deleteContact!, name = $key")->setText('delete'));

?>

Samozrejme ti nebude fungovat to „deleteContact!“ tam si musis ten odkaz vytvorit, ale to je uz o inom. Manualne vykreslovanie to isti

jak inac manualne by som vykreslil ten href ku kazdemu inputu ked foreach mam v komponente

ali
Člen | 342
+
+1
-

@matopeto to myslel jinak

->setOption('description', $this->link(...))

Editoval ali (27. 7. 2017 19:49)

matopeto
Člen | 395
+
-1
-

ali napsal(a):

@matopeto to myslel jinak

->setOption('description', $this->link(...))

Jj tak som to myslel, sorry za zmatok, nepamatal som si presny zapis :)