Generování inputů dynamicky

_kali_malek_
Člen | 7
+
0
-

Zdrávím,

mám takový dotaz, který asi nesouvisí moc s nette, ale přesto.

Potřebuji na kliknutí vygenerovat 2 inputy – text a number.

Mam napsané JS, které mi inputy vygeneruje, ale po kliknutí na submit se nic nestane.

Kód vypadá takto :

<script>
let counter = 0;
    let btn = document.getElementById('add');
    let form = document.getElementById('skillForm');
    let addInput = function() {
        counter++;
        let input = document.createElement("input");
        input.id = 'skill-' + counter;
        input.type = 'text';
        input.name = 'name';
        input.placeholder = 'Název skillu ' + counter;
        let input2 = document.createElement("input");
        input2.id = 'value-' + counter;
        input2.type = 'number';
        input2.name = 'val';
        input2.placeholder = 'Hodnota skillu ' + counter;

        form.appendChild(input);
        form.appendChild(input2);
    };
    btn.addEventListener('click', function() {
        addInput();
    }.bind(this));
</script>

Neví někdo jak nacpat hodnoty zapsané do inputů do phpka – process metody?

Presenter mam takto:

<?php
public function createComponentSkills() : Form
    {
        $skills = $this->skills->get();

        $form = $this->skillFormFactory->create();

        if ($skills) {
            $form->setDefaults($skills->toArray());
            $form->onSuccess[] = [$this, 'updateSkills'];
        } else {
            $form->onSuccess[] = [$this, 'processSkills'];
        }

        return $form;
    }

    public function processSkills(Form $form)
    {
        $data = $form->getValues();
        dumpe($data);
    }

    public function updateSkills(Form $form)
    {
        $data = $form->getValues();
        dumpe($data);
    }
?>

Šablonu mám následně takto:

<script>
<div class="row">
    <div class="col l6 offset-l3 s8 offset-s2">
        <form n:name="skills" class="col l12" id="skillForm">
            <div class="row">
                <button id="add" type="button" class="btn col s12">Přidat skill</button>
            </div>
            <div class="row">
                <button n:name="enter" class="btn col l12 s12">Uložit</button>
            </div>
        </form>
    </div>
</div>
</script>

Děkuji moc..

Editoval _kali_malek_ (6. 2. 2019 17:03)

duke
Člen | 650
+
+2
-

Použij metodu Form::getHttpData. Něco víc k tomu viz dokumentace formulářů.