Autor Zpráva
fantocy
Profil
Ahojte. Potreboval by som poradit. Vlozim do databazy novy riadok pomocou AJAXU a hned urobim select z tabulky. Kazdy vyselektovany riadok obsahuje aj komponentu CHECKBOX. DA sa nejak zistit hodnota CHECKOBOXU noveho zaznamu??? Ked urobim INSERT noveho riadku cez AJAX nevykona sa refresh stranky!!! To znamena, ze ked zistujem hodnotu prave pridaneho CHECKBOX_cislo z riadku ktory bol pridany AJAXOM napr. takto: document.getElementById("CHECKBOX_cislo").value, AJAX mi zahlasi chybu, ze CHECKBOX_cislo neexistuje.

Moderátor Chamurappi: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Kcko
Profil
fantocy:
Pouzij jQuery a metodu live
Ta umi zachytit elementy vytvorene ajaxem.
Chamurappi
Profil
Reaguji na fantocyho:
Děláš někdy chybu, document.getElementById funguje správně. Prosím o odkaz na živou ukázku.


Reaguji na Kcka:
Nepotřebuje si brzdit stránku pomocí live (edit: aby tě to nedráždilo). Elementy vytvořené AJAXem najde (po jejich vytvoření) čímkoliv.
Metoda live se používá k tomu, abys mohl připravit obsluhu událostí u elementů, které zatím neexistují, což při rozumně napsaném callbacku není nutné.
Kcko
Profil
Chamurappi:
edit: aby tě to nedráždilo
:-)

rozumně napsaném callbacku
Jak kdy a jak moc rozumne i na ukor citelnosti a pohodlnosti vid? Ona ta metoda neexistuje jen tak zbuhdarma.
Chamurappi
Profil
Reaguji na Kcka:
Jak kdy a jak moc rozumne i na ukor citelnosti a pohodlnosti vid?
Například? Rozumně napsaný callback je čitelný i pohodlný.

Ona ta metoda neexistuje jen tak zbuhdarma.
Já říkám, že je zbytečná — a já přeci také neexistuji jen tak zbůhdarma, takže to musí být také pravda.

Jinak ta základní otázka skutečně nemá nic společného s používáním live. Nejde mu přečíst hodnota z nějakého zaškrtávátka, protože se mu nedaří to zaškrtávátko najít… co na tom změní jiné zachytávání události?
Kcko
Profil
Dobrá tedy,

můžes mi elegantně přepsat tento kod?


        $(".delFromTicket").live('click', function(e){
            
 
            var zapasID       = $(this).attr("rel").split(":")[0];
            var soutezID      = $(this).attr("rel").split(":")[1];
            var finalContent  = $("h3#tiket").next();
            
            
            
            
            $.ajax({
               type: "GET",
               url: "/ajax/tiket.php",
               data: "zapasID="+zapasID+"&action=deleteFromTicket&soutezID="+soutezID,
               beforeSend: function()
               {
                    var loader = "<div id='loader' style='visibility: visible'></div>";
                    $("body").append(loader);
               },
               success: function(msg)
               {
                    $("#loader").remove();
                    $(this).parent().parent().remove();
                    finalContent.html(msg);
                    
                    $("#tip"+zapasID).children("td:gt(2)").css("background", "");
               }
            });
            
            e.preventDefault();
            
        });


Podotykam, ze ony odkazy, ktere se mazou, jsou vytvoreny na strane PHP pomoci Ajaxu.
Rad bych videl onen sikovny callback.

Dekuji.

PS. Samozrejme, ze me zajima jen myslenka, nemusis brat ohled na vnitrek kodu.
Chamurappi
Profil
Reaguji na Kcka:
    $(".delFromTicket").click(function f(e){
        // …
        $.ajax({
            // …
            success: function(msg)
            {
                // …
                finalContent.html(msg).find(".delFromTicket").click(f);
            }
        });
        // …
    });
Brrr, to je ohavně složité a naprosto nesrozumitelné, že? :-)

Jinak bych také vyhodil řádek 27 (sloupce jde nabarvit jednodušeji), nepřidával bych #loader dodatečně (měnil bych třídu na <body> ovlivňující jeho viditelnost i viditelnost ostatních .delFromTicket), ajaxovou adresu bych si odvozoval z hrefu či z vlastního atributu a nezaprasoval bych atribut rel něčím, co do něj nepatří (když už jde o tu eleganci a čitelnost).

Když se vrátíme k původnímu tématu: Jak souvisí live s tím, že fantocymu nejde zjistit hodnota právě přidaného zaškrtávátka?
__construct
Profil
fantocy by sem mal postnúť zdrojový kód - myslím si, že bez neho mu tu nikto nepomôže.
Chamurappi:
Keď to čítam tak žasnem (nepreháňam :-) ) Nenapadlo by ma to riešiť cez CB .. Naozaj nechceš čo najskôr začať pracovať na tom manuále .. alebo aspoň začať písať blog s takýmito vychytávkami ?
Kcko
Profil
Chamurappi:
Zajimave reseni, ozkousim.
Akorat je tenhle styl zapisu novy a zatim nepochopitelny, na ofiko jQuery webech se to dela tak jak mam ja. (Delam s jQuery 2 mesice a s JS temer vubec)

K druhe otazce, nevim. Vim, ze cokoliv noveho na strance at uz primo nebo ajaxem odchytam pres LIVE, tak jsem myslel, ze tudy cesta povede, asi mylne.
Kcko
Profil
__construct:
Keď to čítam tak žasnem (nepreháňam :-) ) Nenapadlo by ma to riešiť cez CB .. Naozaj nechceš čo najskôr začať pracovať na tom manuále .. alebo aspoň začať písať blog s takýmito vychytávkami ?

I ja se pripojuji. Chamurappi je clovek, ktery me nekde pekne se*e, obcas je arogantni a na pest. Ale na druhou stranu si ho ho vazim pro to co umi a takovyto blog, bych tez uvital.

Ze by pan Vrana v JS provedeni?

Chamurappi:
Jinak bych také vyhodil řádek 27 (sloupce jde nabarvit jednodušeji)
Jak?
__construct
Profil
<mimo-téma>
Kcko:
Ze by pan Vrana v JS provedeni?
p. Jakub Vrána blog (síce dosť občasne) píše a knihu už má napísanú (mala by výjsť na jeseň) a nie je ani trošku arogantný (ani „elektornicky“ ani osobne )
</mimo-téma>
Kcko
Profil
__construct:
To je pravda, myslel jsem spis znalostmi :-)
Pana Vranu jsem jednou vezl ze skoleni z Brna (ktereho jsem se zucastnil) a je to mily chlapik :-)
_es
Profil
Kcko:
Delam s jQuery 2 mesice a s JS temer vubec
To je čo za blbosť?
To "dělaní s jQuery" je programovanie v JavaScripte s jednou dodefinovanou funkciou nazvanou $ a s tým, čo tá funkcia vráti.

Akorat je tenhle styl zapisu novy a zatim nepochopitelny
Nie je na ňom nič nepochopiteľné, akým spôsobom je použité jQuery si nájdeš v jeho dokumentácii, a takisto aj syntax JS je jasne definovaná.
Kcko
Profil
_es:
Bez komentare.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: