ako navrhnut ajax „kontrolovac“

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

mam formular a v nom chcem overit cez ajax ked niekto napise uzivatelske meno ci uz je v databaze…
povodne som chcel na to spravit vlastny prezenter ajax ktory by mal akciu skontrolujnick. Ten sa pripoji do db a vrati miesto templatu(este neviem ako sa vypina) vrati 1 alebo 0 a to uz dalej v jquery spracujem.

Chcel by som sa spytat ci je tento navrh dobry a nieje to daka megaprasacina. Kedze som nasiel toto kde sa na to pouzivaju ine veci v ktorych este nemam celkom jasno ⇒ https://doc.nette.org/…ication/ajax

Rampa
Člen | 65
+
0
-

vytvoř si v presenteru signal pro ověření:

<?php
public function handleCheckName($name){
  $payload['result']=  /* ověř v db existenci a trať třeba TRUE/FALSE */
  $this->terminate(new \Nette\Application\JsonResponse($payload));
}
?>

no a pak si přes jquery zavolej ten signal přes $.get().
Např (za předpokladu, že je script přímov šabloně a ne v samostatném souboru):

<script>
  $.getJSON({$this->presenter->backlink()},{'do':'chekName','name':$(*input*).val()},function(data){
    if (data['result']){
      /* ok */
    }
  });
</script>

šlo by to udělat i linkem:

<script>
  $.getJSON({link checkName!},{'name':$(*input*).val()},function .....
</script>

ale hodilo by to do query stringu dvakrát otazník. Sice by se to asi přehroupalo, ale asi to nebude moc validní volání. :)

Editoval Rampa (27. 3. 2010 1:24)

pekelnik
Člen | 462
+
0
-

mino napsal(a):

mam formular a v nom chcem overit cez ajax ked niekto napise uzivatelske meno ci uz je v databaze…
povodne som chcel na to spravit vlastny prezenter ajax ktory by mal akciu skontrolujnick. Ten sa pripoji do db a vrati miesto templatu(este neviem ako sa vypina) vrati 1 alebo 0 a to uz dalej v jquery spracujem.

Chcel by som sa spytat ci je tento navrh dobry a nieje to daka megaprasacina. Kedze som nasiel toto kde sa na to pouzivaju ine veci v ktorych este nemam celkom jasno ⇒ https://doc.nette.org/…ication/ajax

Tvůj příspěvek není příliš čitelný. Piš, prosím, s diakritikou a interpunkcí.

mino
Člen | 16
+
0
-

rampa: dik idem vyskúšať
pekelnik: nabudúce sa to budem snažiť lepšie napísať

mino
Člen | 16
+
0
-

funguje až na jeden detail js kod mam :

<script>
$("#odkaz").click(function(){

  $.getJSON("/?do=checkName&name=3",function(data){

    alert("vysledok:"+data);
    alert(data["result"]);

  });

});
</script>

bohužial miesto data vypíše null, ked však vložím adresu „/?do=checkName&name=3“ do prehliadača zobrazi json výstup {„result“ :4}

pouzivam jquery 1.4.2

Ola
Člen | 385
+
0
-

relativni vs absolutni adresa?

Rampa
Člen | 65
+
0
-

použij Firebug. Tam uvidíš jak se to přesně odkazuje a co se vrací.
No a z toho už se dá něco odvodit.