AJAX – Component – neocakavan invalidacia

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

Ahoj,
mám taký problém, resp. otázku.

Mám komponentu

class ActionAndIntroduction extends Control
{

    /** @var DibiConnection */
    protected $dibi;
    /** @var Conf */
    protected $settings;
    /** @var int akcie od */
    public $action_from = 0;
    /** @var int akcie do */
    public $action_to = 1;
    /** @var int cen_hlad */
    public $price_value = 1;
    public $results = array();

    public function __construct(DibiConnection $dibi, Conf $settings)
    {
	parent::__construct();
	$this->dibi = $dibi;
	$this->settings = $settings;
    }

    public function render()
    {
	$this->results = $this->dibi->query("SELECT [id],[cmat_tov] FROM [ceny] LIMIT %i, %i", 			$this->action_from, $this->action_to);
	$this->template->results = $this->results;
	$this->template->action = array(
	    "from" => $this->action_from,
	    "to" => $this->action_to
	);
	$this->template->setFile(__DIR__ . '/actionAndIntroduction.latte');
	$this->template->render();
    }

    /**
     * @param $inc
     */
    public function handleGetActions($from, $to)
    {
	if ($this->presenter->isAjax())
	{
	    $this->action_from = $from;
	    $this->action_to = $to;
	    $this->invalidateControl('actions');
	}
    }
}

A template

{snippet actions}
	<a class="ajax" href="{link getActions! , from => $action['to'], to => $action['to'] + 1}">Increment</a><br>
	{foreach $results as $re}
		{$re->cmat_tov}
		{sep}
			//
		{/sep}
	{/foreach}
{/snippet}

čiže pri každom kliku na Increment, sa mi má posunúť limit na query o 1 … čiže 0,1 ⇒ 1,2 ⇒ 2,3 … To sa deje. Lenže čo ja nechcem (a neviem ako to urobiť, obísť,…) je, že sa mi k stávajúcej hodnote pripíše ta nová ⇒ najprv je počet výsledkov 1, potom 2, potom 3 ale stále by mal byť len 1 a ten sa meniť…teraz vlastne sa limit posúva a výsledky pribúdaju. Neviete ako to spraviť len na ten 1?
Dakujem za čas

besanek
Člen | 128
+
0
-

Pokud se nemýlím, tak problém bude v query, konkrétně v limitu. Zvyšovat jen offset, ne limit! Pokud chceš jen jeden výsledek, tak:

$this->dibi->query("SELECT [id],[cmat_tov] FROM [ceny] LIMIT %i, 1", $this->action_from);
Tabetha
Člen | 140
+
0
-

jo jasné díky … že ma to nenapadlo :)