Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Kommy

    veterán

    válasz Kommy #4116 üzenetére

    Kicsit módosítottam, rajta, most már nem a select-nek kell az id-ja, mivel az most már egységes

    És ami a php-ban van mint kimenet:
    <select name='track' id="champ">
    <option champ= "id" id= "y" value="Érték">"Érték"</option>
    </select>

    Ígxy le tudom kérdezni, melyik a kiválasztott legördülő

    $(document).ready(function() {
    $("#track").change(function(){
    var value=$(this).children('option:selected').val();
    var valueid=$(this).children(':selected').attr("id");
    var valuechamp=$(this).children(':selected').attr("champ");
    $("#edit").load("result.php?q="+value+"&x="+valueid+"&f=1&c=0");
    });
    });

    A mostani gond viszont az, hogy csak az első legördülőnél működik, ez miért lehet, a kódot a php generálja, sql lekérdezésekből tehát minden megegyezik bennük semmi eltérés.

  • Sk8erPeter

    nagyúr

    válasz Kommy #4116 üzenetére

    Szerintem az van, amit Karma említett, hogy az .on()-t kellene használnod, a selectek szülőelemére "aggatva", a selectekre szűrve az .on()-nak paraméterként megadott selectorral.
    De amit SOHA többé ne csinálj (:DDD mert egészségkárosító hatású), az a (#4117) azonosítójú hsz.-edben látható, és ROSSZ, NAGYON ROSSZ:
    var value=$(this).children('option:selected').val(); // BORZALMAS
    var valueid=$(this).children(':selected').attr("id"); // NE CSINÁLD
    var valuechamp=$(this).children(':selected').attr("champ"); // ROSSZ

    Tudod, hogy van, amikor egy ilyet leírsz, akkor az egy kismacska életébe kerül.

    Totálisan feleslegesen futtatod le újra és újra ugyanazt a metódust, ráadásul egymás alatt:
    $(this).children(':selected')
    --> ennek az értékét tárold el egy VÁLTOZÓBAN, arra találták ki. Ugyanarra az elemre hivatkozol.
    Tehát a fentit cseréld le valahogy így:
    var $self = $(this);
    var $selectedElement = $self.children('option:selected')
    var value=$selectedElement.val();
    var valueid=$selectedElement.attr("id");
    var valuechamp=$selectedElement.attr("champ");

    a lényeg: a többször használt elemeket tárold el változó(k)ban, ne kérd le őket újra és újra, mert erőforrás-igényes, még ha nem is veszed észre.

    [ Szerkesztve ]

    Sk8erPeter

Új hozzászólás Aktív témák