Zdravím, chtěl bych se zeptat, jestli by si nikdo nevěděl rady, jak pokračovat dále. Otázky a možnosti generuji z databáze. Předem netuším kolik jich bude, proto jsem zvolil metodu "low-level formulář". V šabloně jsem si bez problému vygeneroval otázky a možnosti, kterým jsem přiřadil "checkbox" viz. přiložení kód.
Šablona
{foreach $questions as $question}
<h2>{$question->otazka}</h2>
<h3><input type=checkbox name="sel[{$question->otazka_id}]" value={$question->otazka_id}> {$question->A}</h3>
<h3><p><input type=checkbox name="sel[{$question->otazka_id}]" value={$question->otazka_id}>{$question->B}</p></h3>
<h3><p><input type=checkbox name="sel[{$question->otazka_id}]" value={$question->otazka_id}>{$question->C}</p></h3>
{/foreach}
Ale nemůžu přijít na to, jak vytvořit tlačítko, které by při stisku zkontrolovalo, jestli jsou označené checkboxy u každé otázky (jen jedna správná odpověď) a následně uložila počet označeních odpovědí u každé otázky do nové vytvořené databáze.
Presenter
<?php
namespace App\Presenters;
use App\Model\DotaznikManager;
use App\Presenters\BasePresenter;
use Nette\Application\BadRequestException;
use Nette\Database\UniqueConstraintViolationException;
use Nette\Utils\ArrayHash;
class StudentPresenter extends BasePresenter
{
/** @var \PostsRepository */
protected $dotaznikManager;
/**
* Konstruktor s injektovaným modelem pro práci.
* @param DotaznikManager $dotaznikManager automaticky injektovaná třída modelu pro práci
*/
public function __construct(DotaznikManager $dotaznikManager)
{
parent::__construct();
$this->dotaznikManager = $dotaznikManager;
}
/**
* Odesílá data do šablony s názvem CreateS
*/
public function renderCreateS()
{
$this->template->questions = $this->dotaznikManager->getDotazniky();
}
}
Model
<?php
namespace App\Model;
use App\Model\BaseManager;
use Nette\Database\Table\IRow;
use Nette\Database\Table\Selection;
use Nette\Utils\ArrayHash;
/**
* Třída poskytuje metody pro správu dotazníků
* @package App\Model
*/
class DotaznikManager extends BaseManager
{
/** Konstanty pro manipulaci s modelem. */
const
TABLE_NAME = 'question',
COLUMN_ID = 'otazka_id',
COLUMN_QUESTION = 'otazka';
/**
* Vrátí seznam z databáze.
* @return Selection seznam otázek
*/
public function getDotazniky()
{
return $this->database->table(self::TABLE_NAME)->order(self::COLUMN_ID. ' ASC');
}
}
Předem děkuji za odpovědi.