Keresés

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

  • Gergello

    addikt

    válasz martonx #9604 üzenetére

    Találtam egy elég egyszerű megoldást rá. Sorszámozom az ajax hívásokat, az aktuális sorszámot elküldöm a szervernek is. Amikor megérkezik a válasz, az tartalmazza a hívás sorszámát is. Ellenőrzöm, hogy az utolsó sorszámú hívásra jött-e, ha igen, akkor megjelenítem a tartalmát. Kicsit Frédi-Béni megoldásnak hangzik. :))

    Nem tart másodpercekig, mert nem bonyolult a feldolgozó része, valami miatt néha 1-1 hívásra a válasz késett és az borította fel a rendszert. Spinnert ez miatt nem tennék bele, mert csak lassúnak tűnne, pedig gyors valójában.

  • Gergello

    addikt

    Sziasztok !

    Egy kis jquery kódban kérném a segítségetek.
    Van egy input text mező, amihez csináltam egy kis saját autocomplet funkciót.

    Működési elve: a szövegmező .on("input" ... eseményére csinálok egy ajax hívást, ami visszakap egy html kódrészletet és ezt kell megjeleníteni.

    Helyi teszt szerveren minden tökéletes működött, mert gyors a szerver.
    Felraktam az élesre és az a probléma, hogy a néha lassabban jön meg a válasz és ez miatt nem az utolsónak beírt (végső) input mező tartalom alapján kapott eredményt jeleníti meg, hanem az utolsónak befejeződött ajax hívás eredményét.

    Pl. begépeled, hogy "szerszámkészlet" szépen futnak a hívások, de előfordul, hogy legvégül csak a "szerszámk" keresőszó alapján kapott találatokat jeleníti meg. Hiába látom azt a Chrome Network fülben, hogy az utolsónak küldött ajaxban a "szerszámkészl" adatot küldte el a feldolgozó(válaszadó) résznek.

    Szerintetek, hogy oldjam meg ?
    Szerintem minden ajax hívásban meg kellene szakítani a korábban indított ugyanilyen hívást. De hogy ? Nagyon köszönöm.

    Kód:

    $('#product_search').on("input", function() {
            doSearch();
        });

    function doSearch() {
        $search_string = $('#product_search').val();
        
        if ($search_is_first_submit || (!$search_is_first_submit && $search_string != $last_search_string)) {
            $.ajax({
                url: 'index.php?route=product/search/searchhint',
                type: 'post',
                data: 'search=' + $search_string,
                dataType: 'json',
                success: function(json) {
                    if (json['success']) {
                        $('#search-hint').html(json['success_text']);
                    }    
                }
            });
        }
        
        $last_search_string = $search_string;
        $search_is_first_submit = false;
    }
    function showSearchHint() {
        doSearch();
        
        $('#search-hint').removeClass('d-none');
    }
    function hideSearchHint() {
        setTimeout(function () {
            // Things to do before the focus is out
            $('#search-hint').addClass('d-none');
        }, 150);
    }

  • Gergello

    addikt

    A következő kódban be tudnátok állítani a szöveg színét fehérre és a betűtípust verdana-ra? Nem ismerem a szintaktikát :( , thx !

    var months=new Array(13);
    months[1]=''Január'';
    months[2]=''Február'';
    months[3]=''Március'';
    months[4]=''Április'';
    months[5]=''Május'';
    months[6]=''Június'';
    months[7]=''Július'';
    months[8]=''Augusztus'';
    months[9]=''Szeptember'';
    months[10]=''Október'';
    months[11]=''November'';
    months[12]=''December'';
    var time=new Date();
    var lmonth=months[time.getMonth() + 1];
    var date=time.getDate();
    var year=time.getYear();
    if (year < 2000)
    year = year + 1900;
    document.write( + year + ''. '');
    document.write( '' '' + lmonth + '' '' + date + ''.'');

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