Trable s Ajaxem
- i.magine
- Člen | 81
Potřeboval jsem udělat ajaxový chat na stránkách a tak sem se musel
podívat po nette a ajaxu. Každopádně problém je že mi to nevrací žádné
fragmenty. Když se kouknu do firebugu píše:
{„test“:„1“,„state“:[]}
- ten payload je tam jenom na test jestli se vubec neco posila… kazdopadne snippet se nevraci, asi delam neco spatne. Do databaze se vse normalne vlozi a po refreshi se to na strance taky objevi.
šablona:
{snippet chat}
{if count($messages)>0}
{foreach $messages as $n=>$row}
<strong>{$row->from_username}</strong>
<span>{$row->text}</span>
{/foreach}
{else}
Žádné zprávy
{/if}
{/snippet}
</div>
<div id='chat_text' class='item_box'>
<h3>Zpráva</h3>
{$chat_form->render('begin')}
{$chat_form["chat_message_text"]->control}
{$chat_form["chat_submit"]->control}
{$chat_form->render('end')}
a presenter:
public function createComponentChatForm($name){
$form=new AppForm($this, $name);
$form->addTextarea("chat_message_text", "Zpráva");
$form->addSubmit("chat_submit", "Odeslat");
$form->onSubmit[]=array($this, 'chatFormSubmitted');
return $form;
}
public function chatFormSubmitted($form){
$this->invalidateControl("chat");
$this->payload->test="1";
if ($form["chat_message_text"]->getValue()){
//Vkladani do databaze
}
}
- Klokan
- Člen | 47
Jak nastavit HTML elementu <form> další atributy? Metoda getElementPrototype() vrací element v podobě Nette\Web\Html objektu, se kterým se dá snadno pracovat:
$form->getElementPrototype()->id = ‚login-form‘;
- i.magine
- Člen | 81
Ahoj,
trable s AJAXEM pořád pokračují, tedka zase obracene:
Všim jsem si že se mi vždycky přenášejí všechny snippety, nechápu jak je to možné, odkomentoval jsem všechny invalidateControl(), ještě jsem radší prohledal celý projekt jestli jsem to někde náhodou nezapomněl, ale pořád se vše přenáší… To mi úplně nejde do hlavy.
Nemá s tím někdo zkušenosti? Díky