Tvorba dotazníku spokojenosti (ankety) v nette

gizer
Člen | 67
+
0
-

Ahojky,

rád bych vytvořil dotazník spokojenosti (anketu), kterou bude možné volně vytvářet z admin zóny. Tam se budou zadávat a ukládat libovolné otázky do databáze. Na základě toho se bude v prezenteru dynamicky generovat komponenta formulář, kde se budou dynamicky přidávat otázky z databáze a k jednotlivým otázkám i odpovědní pole „addText“ popř. další typy polí.

Zkoušel jsem použít Php generátor, ale nemám s tím žádné zkušenosti jak generovat kód přímo do presenteru. Povedlo se mně pouze vygenerovat Php do šablony. Možná je ale snadnější cesta, nevím?

Poradíte mně prosím, jak nejlépe na to? Děkuji moc předem.

Martk
Člen | 661
+
+2
-

Ahoj,
budeš znát asi název, typ, id a jestli je povinné. V objektu to bude prezentováno jako:

class Question {

	public string $type;

	public string $name;

	public string $id;

	public bool $required;
}

A následně budeš mít nějakou form create:

$form = new Form();

$questions = // z databáze

foreach ($questions as $question) {
	if ($question->type === 'text') {
		$form->addText($question->id, $question->name)
			->setRequired($question->required);
	}
}

Je to jen rychlý nástřel jak se vyhnout php generátoru

Editoval Martk (3. 3. 2020 20:41)

CZechBoY
Člen | 3608
+
0
-

Potrebujes neco jako tovarnu na tovarnu na formular :-) tzn. z databazovych zaznamu vytvorit formular a ten potom zobrazit, zpracovat odpovedi a ty odpovedi zase nekde zobrazit v administraci/prehledu vysledku.

Urcite bych negeneroval N variant php skriptu, krom toho ze to je nebezpecny, si to ani nedovedu moc predstavit ve vetsim objemu anket :-))

gizer
Člen | 67
+
0
-

Děkuji moc. Ten foreach přes řádky databáze s následným generováním příslušného počtu polí přímo ve form factory vypadá jednoduše. Vyzkouším a uvidíme. Ještě jednou děkuji za nasměrování.