Vymazanie formulárových prvkov

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

Mám urobený klasický formulár s jedným containerom, do ktorého vkladám dynamicky jednotlivé položky – opäť containery.

Následne mám urobený jeden submit button, ktorý mi pridá riadky po kliknutí v success funkcii:

if($form['add_rows_1']->isSubmittedBy()) {
	$max_id = $this->last_row_id;
	for($this->last_row_id; $this->last_row_id <= $max_id; $this->last_row_id++) {
		$this->addRowContainer($form['rows'], $this->last_row_id);
	}
}

Všetko mi funguje skoro tak ako má, ale mám problém s jednou vecou. Chcem urobiť vymazávanie jednotlivých riadkov ale bez submit formu, tj. len s JS. Robím to tak, že odstránim celú HTML štruktúru tých prvkov, ktoré nepotrebujem.

Pri odoslaní mi ale príde pole s prvkami napr 1, 2, 4, 5 (3 je vymazané) avšak formulár očakáva aj tú troju a preto ju nahradí prázdnym polom a 5 vypustí (tá 5 bola doplnená spôsobom vyššie).

Ako by som mohol donútiť brať formulár len tie prvky, ktoré tam má? Resp. akoby som mohol pozmeniť POST data pre formulár?

Alebo mi vie niekto poradiť lepšiu možnosť ako to robiť?

David Matějka
Moderator | 6445
+
0
-

Nebude ti vyhovovat pro tento ucel kdyby/replicator ? Ten to tam prave resi, ze containery vytvori dle http dat. Pripadne se tam alespon muzes inspirovat :)

greno
Člen | 10
+
0
-

Zase sa ukázalo, že keď to človek s niekým skonzultuje, tak mu aj napadne riešenie. Nakoniec som to spravil tak, že vyrábam kontainery nie cez for() ale cez foreach() z tých dát, ktoré mi prišli v poste a tým pádom neočakáva niečo, čo nemá.

Ďakujem :)