Ajax a snippet refresh tabulky

- KillPrd
 - Začátečník | 110
 
Ahoj snažím se o jednoduchou filtraci tabulky formou onkeyup kdy při uderu klavesnice se zacně live filtrovat tabulka se zaznamy.Problém: fungue onkeyup ale pouze znovu načte tabulku a to nad tu puvodni se zaznamy ktere tam jsou.
tedy mám takto formulař:
<?php
public function createComponentFilterForm()
		{
				$filterForm = new AppForm();
				$filterForm->getElementPrototype()->class('ajax');
				$filterForm->addText('hledej', 'Hledej')->getControlPrototype()->onkeyup("$(this).ajaxSubmit();");
				$filterForm->onSubmit[] = callback($this, 'processFilterForm');
				return $filterForm;
		}
		public function processFilterForm($form){
			$values = $form->values;
			$this->invalidateControl('tabu');
			$this->template->items = dibi::query("SELECT * FROM mylogin WHERE ID LIKE '%".$values['hledej']."%'");
		}
?>
A takto to mám v sabloně.
<?php
{snippet tabu}
        {foreach $items as $item}
    		<tr {!$iterator->isEven() ? 'class="even"' : 'class="odd"'}" onclick="Link({link this , id=>$item->id,'vp-page' => $curentPage,'order'=>$order});">
            	<td width="32">{$item->id}</td>
                <td  width="10" class="center">{!$item->stat=="1" ? "<img src=\"$basePath/images/stat1.png\"/>" : "<img src=\"$basePath/images/stat0.png\"/>"}</td>
                <td>{$item->jmeno}</td>
                <td>{$item->prava=="2" ? "Administrator" : "Uživatel"}</td>
            </tr>
    	{/foreach}
        {/snippet}
?>
javaskript:
<script>
$("input[name=hledej]").live("keyup", function(){
    $(this).closest('form').submit();
});
</script>
nevím kde hledat chybku…

- bojovyletoun
 - Člen | 668
 
- sql injection
 
správně …LIKE %s', ‚%‘.$value.‚%‘);
- hloupá otázka, ale máš nette.js?
 
3)jak to funguje na začátku, kde načteš stránku a form je prázdnáý?

- KillPrd
 - Začátečník | 110
 
- děkuji
 - mám
 
<?php
<script type="text/javascript" src="{$basePath}/js/jquery.js"></script>
<script type="text/javascript" src="{$basePath}/js/jquery.nette.js"></script>
<script type="text/javascript" src="{$basePath}/js/ajax.js"></script>
?>
- načtu stránku a form je prázdný datagird je již naplněný.
 

- KillPrd
 - Začátečník | 110
 
Tak jsem pokročil a udělal jsem to same bez formuláře. Jeden problém
stále přetrvává a to že mi to nevrací hodnoty.
tedy udělal jsem nový script
<script>
$("#frmfilterForm-hledej").live('keyup', function(e){
    $.get("do=test", {"value": $(this).val()});
});
</script>
pomocí něho volám onkeyup handleTest a v něm mám toto
<?php
public function handleTest($co)
{
	$this->template->items = dibi::query("SELECT [*] FROM mylogin WHERE 1");
	$this->invalidateControl('tabu');
	}
?>
Stále by jste nikdo nevěděl?

- KillPrd
 - Začátečník | 110
 
Další věc je že pokod nevracím array pole typu:
$this->template->items = dibi::query(„SELECT [*] FROM mylogin
WHERE 1“);
ale jen samostatnou zprávu tak a mimo tabulku do jineho snippetu tak to
funguje.
problém nastane v případě že to chci nacpat do místa kde jsou již
načtená data. a do tabulky jako takové.
takže se zdá že budu mnuset načítat celou šablonu s kusem kodu kde budou
již načtená data. bohužel nevím jak načíst celou sablonu ale kdyby jste
měl někdo řešení sem s ním…

- KillPrd
 - Začátečník | 110
 
Tak ted se snažím načíst sablonu do daneho snippetu a ani to mi nejde.
<?php
$template = new Template;
$this->template->items = dibi::query("SELECT [id],[jmeno],[prava],[stat] FROM [mylogin] WHERE 1 ORDER BY ID");
 if ($this->isAjax())
$this->template->setFile('tabulkaUsers.phtml');
$this->invalidateControl('sniptab');
?>
a sablona
<?php
{if isset($items)}
        {foreach $items as $item}
    		<tr {!$iterator->isEven() ? 'class="even"' : 'class="odd"'}" onclick="Link({link this , id=>$item->id,'vp-page' => $curentPage,'order'=>$order});">
            	<td width="32">{$item->id}</td>
                <td  width="10" class="center">{!$item->stat=="1" ? "<img src=\"$basePath/images/stat1.png\"/>" : "<img src=\"$basePath/images/stat0.png\"/>"}</td>
                <td>{$item->jmeno}</td>
                <td>{$item->prava=="2" ? "Administrator" : "Uživatel"}</td>
            </tr>
    	{/foreach}
        {/if}
?>
jak zjisti zda se sablona nacte dkyž jí nevidím zda jí nejde.
Nemusím udělat nejaké routy?
Dále nemusím pridat snippety jeste do externí sablony?

- KillPrd
 - Začátečník | 110
 
Tak jsem pokročil již uspěšně načtu data do externi sablony ale stále se mi nedaří načíst ji do snippetu
<?php
public function handleTest()
		{
			if ($this->isAjax())
        	 $template = $this->template;
             $template->setFile(APP_DIR . '/templates/tabulkaUsers.phtml');
			 $this->template->items = dibi::query("SELECT [id],[jmeno],[prava],[stat] FROM [mylogin] WHERE 1");
			 $template->render();
			 $this->invalidateControl('sniptab');
		}
?>