Új hozzászólás Aktív témák
-
Speeedfire
nagyúr
válasz Sk8erPeter #749 üzenetére
Maradt a szerver oldali.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #751 üzenetére
Nincs is azzal baj.
Ha a felhasználó kezébe akarod adni a vagdosás jogát (konkrétan hol legyen megvágva a kép), akkor jó lehet rá az előbb linkelt Jcrop.[ Szerkesztve ]
Sk8erPeter
-
martonx
veterán
válasz Sk8erPeter #749 üzenetére
Én mostanra már a sztenderd html lap kiszolgálás, db kapcsolat (szigorúan minden ajax-al!), meg némi csv, pdf generáláson (amik szintén db-ből származó adatok) kívül semmire nem használom a szerver oldalt.
Session-öket is már csak akkor használok, mikor tényleg szerver szinten kell állapotokat rögzíteni, egyébként mindenhez HTML5 localstorage.
Szép új jövő.Én kérek elnézést!
-
Speeedfire
nagyúr
válasz Sk8erPeter #752 üzenetére
Ismerem, de még nem használtam.
martonx: Szépen beindexel minden oldalt a google? Illetve meta adatok, találati listával, hogy boldogul? Régebben nem nagyon ajánlották az ajaxot mindenhova. Meg még mondták, hogy ha nagyon ajax akkor is csak szinkron módban.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
Itt most profilképek megjelenítéséről, abból készített thumbnailekről beszélünk.
Gondolj bele, mi lenne, ha mindenki mondjuk 3 MB-os méretű képeket töltene fel, és mondjuk átlagban 2000px×3000px paraméterekkel rendelkeznének, és mondjuk listázni szeretnéd a felhasználóidat, úgy, hogy egy thumbnailt is kellene mellette mutatni.
Akkor lekéred az összes, fentebb említett tulajdonságokkal rendelkező képet, majd kliensoldalon megvagdalod?
Az a "szép új jövő"?Ja, egyébként valóban felmerül a kérdés, hogy ha mindent AJAX-ra alapozol, nem felejtesz-e el keresőoptimalizálni.
Azért azt se felejtsd el, hogy nem mindenki pénzügyi szektorban készít webalkalmazásokat.Sk8erPeter
-
martonx
veterán
válasz Sk8erPeter #755 üzenetére
Hát igen, nálam a SEO abszolút nem játszik.
Azért manapság AJAX mellett sem lehetetlen kereső optimalizálni, csak macerásabb: link
A példád jó, ilyenkor tényleg szerver oldalon kell a képeket manipulálni, aztán majd külön letölti valaki a képet, ha nagyban akarja látni.
Másrészt egy profil képet minek letárolni nagyban, ha úgyis mindig csak bélyegnyi méretben jelenik meg?
Nem zárkózok én el a szerver oldali programozás elől, csak az én szektoromban tényleg egyre minimálisabb szerepe van.[ Szerkesztve ]
Én kérek elnézést!
-
Speeedfire
nagyúr
válasz Sk8erPeter #755 üzenetére
Előtte volt egy alap thumbnailezés. Tehát minden kép, 800*600, illetve van még egy kisebb 120*160-as, de a profilképet már nagyobban lenne jobb olyan 200*200-as. A 800*600-ast akartam kliens oldalon vagdosni.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
Huhh, hát jó hosszú a cikk, így nem igazán olvastam bele, de van közvetlenül a Google-től is:
Making AJAX Applications CrawlableLényege, hogy az itt leírtakkal elvileg az is megoldható, hogy azok az URL-ek tárolódjanak (azokra lehessen rátalálni pl. Google-ben), amik az AJAX-os megjelenítést produkálják, tehát pl. http://example.com/#!valamioldal/blabla, és erre klattyoghat a júzer, és állítólag működik is.
Ja, amúgy alapból macerás így megoldani.
Szerintem az is jó módszer, ha először működik AJAX nélkül minden faszán, aztán amikor kész vagy, akkor ráállsz arra, hogy elkészítsd a működést AJAX-szal is; ez esetben lesz egy http://example.com/valamioldal/blabla, de működik úgy is, ha csak ráklikkelsz erre a linkre: http://example.com/masikoldal#!/valamioldal/blabla - vagy valami hasonló.
Remélem nem volt túl kusza.Na, de a lényeg, hogy a szerveroldali manipulálás nem valószínű, hogy ki fog halni, mert egyszerűen vannak dolgok, amiket a júzer gépére felesleges letölteni (lásd pl. a buzinagy profilképek, amiknek miért is ne lehetne nagy változata, ha valaki nagyban is meg akarja nézni az orcáját), vagy amit előle el kell rejteni (nem kliensoldalon machinálni).
=======================
(#757) Speeedfire:
Jaja, értettem én, hogy ilyesmiről van szó.
De ezt kliensoldalon vagdosni szerintem nagyon nem lenne jó módszer...
Egy profilképet nem kétpercenként cserélget az ember.[ Szerkesztve ]
Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #758 üzenetére
Nem, de ebben a szegmensben elég sűrűn.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
-
Speeedfire
nagyúr
válasz Sk8erPeter #760 üzenetére
Titok a dolog. Privibe elmondom.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Jim-Y
veterán
Sziasztok, ötleteket szeretnék kapni, hogy milyen módszert alkalmazzak arra, hogy:
-van egy kereső mezőm, működik mögötte egy script, ami a keyup-okat figyeli, ha 3 karaktert beírt a user, akkor adatbázisban rákeres erre a 3 karakterre, és visszaad egy tömböt azon elemekkel, amikben szerepel az ominózus 3 betű. Jelenleg annyit csinál, hogy ha ez a tömb nem null, akkor a 3 karaktert átszínezi zöldre, egyébként pirosra.
Ezt szeretném úgy kiterjeszteni, hogy ha 3 karaktert bevitt, és megkapom a tömböt, akkor egy "dropdown" listben meg szeretném jeleníteni a lehetséges találatokat, és mindegyiket klikkelhetővé akarom tenni. Arra nincs ötletem, hogy milyen dialogot,input fieldet, textarea-t alkalmazzak, vagy, hogy milyet szoktak ilyenre használni.
Egyébként ugye lenne a dropdown list, amiből választhat a user, akkor az alatta lévő jstree úgy nyílna meg, hogy csak a kiválasztott elemet nyitná meg. Jelenleg úgy működik, hogy ha 3, vagy több karakter után megnyomja a user a gombot, akkor a jstree minden olyan elemig lebontja a fát, amiben az adott string szerepel.
Úgy szeretném megcsinálni, hogy a user eldönthesse, hogy választ egy találatot a legördülő menüből, és akkor csak azt nyitja meg a jstree, vagy nem választ semmit, és úgy nyom rá a gombra, ekkor úgy működne mint eddig, mindent kinyitna amiben a string szerepel. üdv
-
-
Jim-Y
veterán
Estét!
Van egy DIV-em, benne pár SPAN, bármelyikre rákattintok, akkor klónozott önmagát, hozzáadja egy másik DIV-hez. Azt akarom elérni, hogy ha a klónozott span-re rákattintok, akkor törölje magát a konténer DIV-ből:
$("#activity_data_log span").click(function(){
$(this).clone().appendTo("#query_field");
});
$("#query_field span").click(function(){
$("#query_field").remove($(this));
});Sajnos ez most nem működik Ha a klónozott span-re kattintok akkor semm sem történik. Mi lehet a gond? Egyébként tudom, hogy kábé semmi értelme annak, hogy valamit hozzáadok, majd rögtön törlöm, de azért akarom ezt megcsinálni, hogy ha a user véletlen kattint valamire, akkor tudja utána törölni. üdv és köszi
mod:
nah... épp, hogy leírtam úgy néz ki sikerült.. pedig direkt nem küldtem el fél óráig a hsz-t, addig próbálkoztam, hogy tuti ne történjen meg ez, aztán valami hirtelen ötlettől övezve kipróbáltam ezt:$("#activity_data_log span").click(function(){
$(this).clone().appendTo("#query_field").on("click", function(){
$(this).remove();
});
});.. és nem bejött? -.-
[ Szerkesztve ]
-
Karma
félisten
Bejönni lehet bejött, de szerinted korrekt az, hogy az újonnan létrejött elemek click eseményében az .on() hívással szaporítod az eseménykezelőket ahelyett, hogy simán ott és akkor meghívnád a klónozott elemnek a .click függvényét?
Szerintem választanod kéne, hogy vagy két .on() hívást csinálsz (egyet a "#activity_data_log span"-ra, a másikat a "#query_field span"-ra), vagy pedig explicite clickeket használsz. De nem kéne keverni.
BTW a "mi lehet a gond?" problémákat mi úgy tudjuk a legjobban debuggolni, ha jsfiddle-re vagy jsbinre feltöltöd.
“All nothings are not equal.”
-
Jim-Y
veterán
Itt a jsfiddle példa [link]
Először úgy próbáltam hogy írtad, de nekem nem kezelte le a .click()-et a hozzáadott span-eken. üdv
Átírtam, és nem működik: [link]
Ezt adtam hozzá pluszban:
$("#query_field_td span").dblclick(function(){
$(this).remove();
});és pár sort kikommenteztem fölötte.
[ Szerkesztve ]
-
Jim-Y
veterán
lejárt..
on-ra se működik így:
$("#activity_data_log span").on("click",function(){
if($.trim($(this).text())=="*"){
$(".search_span").each(function(){
var intext = $(".search_span").text();
$(".search_span").text(intext+" ").clone().appendTo("#query_field_td"); /* .on("dblclick", function(){
$(this).remove();
}); */
});
} else {
$(this).clone().appendTo("#query_field_td"); /* .on("dblclick", function(){
$(this).remove();
}); */
}
});
$("#query_field_td span").on("dblclick",function(){
$(this).remove();
}); -
Sk8erPeter
nagyúr
</br>
Ez micsoda??
A jó változat talán:
<br />
Nem ártana ezt mindenhol kicserélni...Egyébként iszonyatosan túlbonyolítod a kódodat.
Példa:$(".flip").click(function(){
if($(this).attr('id')=="query_0"){
$("#own_queries").slideToggle("slow");
} else if($(this).attr('id')=="query_1"){
$("#activity_data_log").slideToggle("slow");
$("#appended_modules").html("");
$("#query_field_td").html("");
} else if($(this).attr('id')=="query_2"){
$("#performance_data_log").slideToggle("slow");
} else if($(this).attr('id')=="query_3"){
$("#system_information").slideToggle("slow");
} else if($(this).attr('id')=="query_4"){
$("#sp_activity_log").slideToggle("slow");
} else {
}
});Ehelyett az okádék gányolás helyett - bocs - lehetne ennyi az egész:
$(".flip").click(function(){
$(this).next().slideToggle("slow");
});Ugyanúgy működik...
A markupod sem túl szép.
A dblclick-esnél meg gondolom Karma erre gondolt (Te meg elég rossz helyre próbáltad beszúrkálni, amit mondott), hogy valahogy így kéne (bár így is eléggé spagettikód marad így elsőre):
[link]
Itt működik, on() nélkül.Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #770 üzenetére
Köszi, a </br> lövésem sincs honnan jött nekem, de észre se vettem volna
A többit is kössz, amúgy, a .on miért rosszabb mint ha direkte egy dblclick-et szúrok rá? üdv -
Speeedfire
nagyúr
Adott egy form, amibe be akarok illeszteni kódot. Hasonló képen, mint itt a PH!-n. Viszont szeretnék egy olyat készíteni hozzá, hogy a kódot és a között lévő számot/szöveget egybe kezelje a "rendszer". Tehát ha kijelölöm akkor az egészet jelölje ki és törölni is csak így lehessen, mint a facebook-on. Ismer valaki ilyen kódot?
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Karma
félisten
Az az érzésem, hogy itt több problémát próbálsz egyszerre megoldani, és elbeszéltünk egymás mellett (tetézve azzal, hogy nem tudok érdemben belefolyni a kódba még mindig ).
Az .on() a klónozott spanoknál jön be a képbe, hogy a click eseményt ne a clone()-nál hívogasd minden egyes dinamikusan létrehozott elemre, hanem csak egyszer, egy helyen definiáld. A clone-os rész tisztább lehet így.
Az, hogy közben vannak ezek a nagyobb sávok, amik statikusak (azaz ismertek már a HTML dokumentumban), egy másik eset. Ide nem kell on(), mert ilyen sávokat nem szaporítasz.
Próbálok CPU időt szakítani a fiddle vizslatására most már...
“All nothings are not equal.”
-
Karma
félisten
Egy kicsit elkezdtem nyaszatolni a kódot, csak hogy látszódjon hogy hogyan is kellene az .on()-t használni. Lásd itt.
Illetve a <br/> helyett más markupot írtam, nem érzem tökéletesnek de a sörtöréseknél biztosan jobb. A < és > jelekre meg figyelj oda, HTML-ben nem szórhatod őket csak úgy
Az a csillagos logika frankó végtelen ciklust csinált, még nem tudom miért, de inkább kivettem. Az mit akarna csinálni?
[ Szerkesztve ]
“All nothings are not equal.”
-
Jim-Y
veterán
Azt azért raktam bele..vagyis, inkább ott kezdem, hogy azt csinálja, hogy ha a * -ra kattint, akkor a táblaneveket helyettesíti be, ezeket (`datetime_created` `client_version` `realm_name` `username` `activity_data`). Azt csak most látom én is, hogy frankón végtelen a ciklus, azóta ezt úgy tűnik javítottam, mert nálam jól működik. Erre azért van szükség, mert php oldalon, ha lekérem adatbázisból a táblát azzal az SQL lekérdezéssel amit itt az oldalon összeállítok, akkor könnyebb az oszlopokat indexelni. ha * marad az SQL-ben, akkor nem tudok olyat csinálni a php kódban, hogy $result_data[$i][$index_array[$j]] ahol a result_data az adatbázisból kinyert adat, az index array, pedig épp az, amire a *-ot cseréltem a jquery kódban, tehát (`datetime_created` `client_version` `realm_name` `username` `activity_data`)..
A <,> jeleket átírtam, köszi
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Fuhh, nekem ettől a *-ra való magyarázattól szét akart durranni a fejem, annyira szétszórt iromány volt - vagy csak nekem nehéz a felfogásom.
Nem értem még mindig, miért kell, hogy másképp csináld, mint hogy "nyers" módon belepasszírozd a query-be a *-ot, attól még miért ne kaphatnád meg PHP-vel a lekérés eredményeként kapott mezők neveit...
Egyébként ennél a query-összeállításos mókánál nem ártana arra is odafigyelni, hogy a felhasználó milyen sorrendben rakhatja egymás mellé a query-hez szükséges "összetevőket", tehát egy kliensoldali ellenőrzés IS mindenképp szükséges lenne. Nem olyan bonyolult, csak mindegyik részelemnek meghatározod az elfoglalható helyét, így kialakul egyfajta sorrend. Azt sem kellene engedni, hogy duplán tudjon valaki egymás mellé pakolni korábban már hozzáadott szót (mivel akkor szinte tuti, hogy a query elcsesződik).[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #776 üzenetére
Igen-igen, már valamilyen ellenőrzést tettem bele, de még nem eleget, ezzel majd később foglalkozom, eddig annyit raktam bele, hogy az input fieldbe írt szöveg csak akkor adható a query-hez, ha egy WHERE már benne van a query-ben, de ugye ez még semmi..:/ Na majd később
-
Sk8erPeter
nagyúr
Mindenesetre nem ártana ellátni a kulcsszavakhoz tartozó wrappereket (span és társai) valamilyen class-szal, hogy legyen már valami egyedi jelzésük, minél jobban bővül a kódod, annál nehezebben lesz karbantartható és átlátható.
Azt még mindig nem írtad le, hogy a *-hoz miért is kellett odarakni a többitől teljesen eltérő kezelést (miért is volt szükség arra a végtelen ciklusra ).Szerk.: még egy jótanács, vagy inkább kódolási praktika.
Van a kódodnak ez a része (most ezt Karma legutóbbi szerkesztéséből vettem még):
if ($("#activity_data_log input").val() !== "") {
var spantext = "'" + $("#activity_data_log input").val() + "'";
$("#activity_data_log input").val("");
$("<span></span>").text(spantext).appendTo("#query_field_td");
}Itt mint jól látható, az $("#activity_data_log input") selector nagyon sokszor előfordul itt a kódban.
Gondolj bele, milyen teljesítményromlással jár ez, hogy a jQuery-nek tulajdonképpen 5 sorból 3-ban is végig kell rohangásznia a DOM-on, keresgélve az ilyen selectornak megfelelő elemet (nem mondom, hogy ez hű de lassú, sőt, főleg, hogy egyedi azonosítóval ellátott elemről van szó, de akkor is felesleges overhead).
Az ilyet el lehet kerülni - és nagyon is érdemes - úgy, hogy eltárolod egy változóba a már megtalált eleme(ke)t, valahogy így (most a $dataLogInput változónevet adtam neki, de tök mindegy):$dataLogInput = $("#activity_data_log input");
if ($dataLogInput.val() !== "") {
var spantext = "'" + $dataLogInput.val() + "'";
$dataLogInput.val("");
$("<span></span>").text(spantext).appendTo("#query_field_td");
}Jobb és könnyebben is módosítható, ha csak egy helyen "drótozod be" az adott selectornak megfelelő elemet.
[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #778 üzenetére
[link] itt van ami már működik, de a flip spagettit még nem írtam át, így azért ne szólj be
Azért csináltam meg ilyenre a * -ot, mert ha veszünk egy ilyen query-t:
SELECT * FROM `client_activity_data_log`akkor ezt pont így kapja meg a PHP kód, amiben így kezelem le:
$query = $_POST['query'];
$result = $log->prepare($query);
$result->execute();
$result_data=$result->fetchAll(PDO::FETCH_ASSOC);És akkor itt jön be, hogy miért nem * -ot küldök át, mert ha végigiterálok a $result_data-n, akkor az elemeire így akarok hivatkozni:
$result_data[$i]['mezőnév'], szerintem, bár az is lehet, sőt valószínű, hogy ez csak a hozzá nem értésemből adódik, ha csillagot küldök át, akkor nem tudja a program, hogy milyen mezők vannak a result_data-ban. Max azt tudom elképzelni, hogy így is végig lehet menni rajta: $result_data[$i][0] ... $result_data[$i][1]. Sőt,biztos arra is van vmi hasznos kód, hogy kinyerje a mezőneveket, de én most úgy oldottam meg, hogy nem * -ot küldök a query-ben, hanem még előtte behelyettesítem a mezőneveket
megj: ez itt csak egy elemet jelöl ki, mert utána már nem Activity_data_log lesz, hanem pl Performance_data_log. Tehát ez a kódrészlet csak egy elemet tud kijelölni, miért nem id akkor? fene se tudja majd ezt is át kell írnom, de jó lenne ha minél több sor lenne a kód, nem minél kevesebb, ne kérdezdd, tényleg ne ... -.-
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
"És akkor itt jön be, hogy miért nem * -ot küldök át, mert ha végigiterálok a $result_data-n, akkor az elemeire így akarok hivatkozni:
$result_data[$i]['mezőnév'], szerintem, bár az is lehet, sőt valószínű, hogy ez csak a hozzá nem értésemből adódik, ha csillagot küldök át, akkor nem tudja a program, hogy milyen mezők vannak a result_data-ban. Max azt tudom elképzelni, hogy így is végig lehet menni rajta: $result_data[$i][0] ... $result_data[$i][1]. Sőt,biztos arra is van vmi hasznos kód, hogy kinyerje a mezőneveket, de én most úgy oldottam meg, hogy nem * -ot küldök a query-ben, hanem még előtte behelyettesítem a mezőneveket "Nem értelek. Mielőtt ezeket leírod, miért nem az az első, hogy TESZTELSZ?
Már hogyne lehetne "kinyerni a mezőneveket" a query-ből? Próbáld már ki... Asszociatív indexként is megvan, meg úgy is, ahogy írtad, számmal indexelve...
Ha csak asszociatív indexszel szeretnéd megkapni, akkor ezt átadhatod a fetchAll-nak:$results_array = $sth->fetchAll(PDO::FETCH_ASSOC);
A linkelt jsFiddle-példában meg nem vettem észre, hogy hű de szigorú ellenőrzés lenne, amikor ilyen "query-t" össze tudok pakolni:
SELECT `datetime_created` FROM `client_activity_data_log` WHERE `realm_name` `datetime_created` `client_version` `realm_name` `username` `activity_data` `datetime_created` `realm_name` AND <>!=OR ORDER BY GROUP BY LIKE DESC ASC `datetime_created` `client_version` `realm_name` `username` `activity_data` FROM `client_activity_data_log`
... és a lehetséges kombinációk száma végtelen...
(csak egy dolog, hogy a mezőnevek közé nem ártana, ha vesszőt raknál, meg nem látom, hogy itt a sorrendet megkötötted volna...)"majd ezt is át kell írnom, de jó lenne ha minél több sor lenne a kód, nem minél kevesebb, ne kérdezdd, tényleg ne ... -.-"
De, erre vissza kell kérdeznem: Te komolyan ilyen szellemben kódolsz?[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #780 üzenetére
"A linkelt jsFiddle-példában meg nem vettem észre, hogy hű de szigorú ellenőrzés lenne, amikor ilyen "query-t" össze tudok pakolni:" írtam is, hogy ezzel még nem foglalkoztam.
Most nem fogm átírni a kódot, hogy a * simán szerepelhessen.. jó ez így ahogy van, így is működik jól..
De, erre vissza kell kérdeznem: Te komolyan ilyen szellemben kódolsz? nem, csak ebben a projektben.
[ Szerkesztve ]
-
Jim-Y
veterán
Lenne egy kérdésem megint, hogy tudok olyan ajax callt csinálni, ami megvárja amíg minden adat megjön, és csak utána adja vissza az értéket?! Mert most az a gondom, hogy van egy olyan ajax-om amibe raktam egy return-t -> hiba volt, így a return undefined-al tér vissza, nem várja meg, míg befejeződik az ajax...remélem érthető
Szeretném callbackben visszaadni az adatot, hogy lehet ezt megcsinálni?
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Nem ártana látni a kódodat, hogy mit csináltál... ja, hogy találjuk ki.
Az $.ajax funkciónál van jópár callback erre, hadd idézzek az egyébként NAGYON részletes hivatalos dokumentációból:
Here are the callback hooks provided by $.ajax():
1. beforeSend callback is invoked; it receives the jqXHR object and the settings map as parameters.
2. error callbacks are invoked, in the order they are registered, if the request fails. They receive the jqXHR, a string indicating the error type, and an exception object if applicable. Some built-in errors will provide a string as the exception object: "abort", "timeout", "No Transport".
3. dataFilter callback is invoked immediately upon successful receipt of response data. It receives the returned data and the value of dataType, and must return the (possibly altered) data to pass on to success.
4. success callbacks are then invoked, in the order they are registered, if the request succeeds. They receive the returned data, a string containing the success code, and the jqXHR object.
5. complete callbacks fire, in the order they are registered, when the request finishes, whether in failure or success. They receive the jqXHR object, as well as a string containing the success or error code.Aztán itt még látsz egy pár erre vonatkozó függvényt:
http://api.jquery.com/category/ajax/global-ajax-event-handlers/Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #784 üzenetére
Azzal kezdtem, hogy ezt elolvastam, de itt szinte minden a request-re vonatkozik, nem az adatra..
function howmanyOnline(callback){
var request = $.ajax({
type: 'POST',
url: 'http://localhost/qwaq/onthefly.php/',
dataType: 'text',
data: {
query:"notify"
}
});
request.done(function(data){
//alert(data);
return data;
});
}
Ez a kód, ha ezt meghívom valahol, akkor pár másodperc múlva kiírja az adatot (ha alertelem, és nem return-ölöm) , az a baj ezzel, hogy nekem úgy kéne meghívnom, hogy,pl:var num = howmanyOnline();
És ezért írtam be, mert a doksiban csak olyat találtam, ami a requestre vonatkozik. Jelenleg ha így hívnám meg a függvényt, akkor nem adná vissza az értéket, vagyis igen, de undefined, mert a return csak a request végét várja meg, nem azt a pár másodpercet, míg megjön az adat.
Talán a dataFilter lehet érdekes... utánanézek.
-
Cathfaern
nagyúr
Próbálkozz így
function howmanyOnline(callback){
var request = $.ajax({
type: 'POST',
url: 'http://localhost/qwaq/onthefly.php/',
dataType: 'text',
data: {
query:"notify"
}
success: function(data){
alert(data);
}
});
}Vagy belőheted szinkronra az ajax requestet, de akkor blokkolódik a böngésző amíg nem végez.
[ Szerkesztve ]
-
Karma
félisten
Ezt hívják szinkron (blokkoló) hívásnak, és böngészőben szigorúan tilos(nak kéne lennie) ilyennel szarakodni, mert az egész oldalt befagyasztod a visszatérésig.
Lesszíves áttervezni aszinkron működésre.
Vagy használj web workert.
De akkor is rossz már az elv is.A jQuery szinte fogja a kezed hozzá a Promise osztállyal.
[ Szerkesztve ]
“All nothings are not equal.”
-
Jim-Y
veterán
válasz Cathfaern #786 üzenetére
Igen, végül arra jutottam, hogy valami ilyesmi működhet:
function howmanyOnline(callback){
var query = "notify";
$.ajax({
type: 'POST',
url: 'http://localhost/qwaq/onthefly.php/', // !!!!!!!!!!!!!!!!!!!!!! EZT KI KELL MAJD CSERÉLNI
dataType: 'text',
data: {
query:query
},
success: function(data){
callback(data);
}
});
}amit így kell meghívnom:
howmanyOnline(function(data){
});és az adatot ezen belül tudom manipulálni, köszönöm a válaszokat
Karma: ez egy chrom-os kiegészítőben futna, vagy hát fut is, percenként csatlakozna a háttérben a szerverhez, ahonnan lekérné, hogy hányan vannak online, ha többen mint egy előre beállított érték, akkor küldene notifikációt, meg emailt, meg amit beállít a user..
[ Szerkesztve ]
-
Speeedfire
nagyúr
Nem ismer valaki olyan kódot, mint ami itt a PH!-n van tag (félkövér, programkód, stb stb) beillesztésekor, ahol a kurzor van?
Egy ilyet találtam, de még nem próbáltam ki.
jQuery.fn.extend({
insertAtCaret: function(myValue){
return this.each(function(i) {
if (document.selection) {
//For browsers like Internet Explorer
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
}
else if (this.selectionStart || this.selectionStart == '0') {
//For browsers like Firefox and Webkit based
var startPos = this.selectionStart;
var endPos = this.selectionEnd;
var scrollTop = this.scrollTop;
this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
})
}
});Szerk.: Kipróbálva. Nem rossz.
[ Szerkesztve ]
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
martonx
veterán
válasz Speeedfire #791 üzenetére
miért nem használsz inkább valami rendes wysiwyg editort pl. fckeditor?
Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz Speeedfire #791 üzenetére
Ezt nem értem, amit mutattál, az igazából mire jó?
Nem különösebben mélyedtem el a kódjában - annyira azért nem érdekel -, de ha kijelölöm a szöveget, és klikkelek a "példa" linkre, akkor egyszerűen kitörli a 'csába, és felülírja a "szöveg" stringgel. Mi ebben a jó? Ennek pedig ilyenformán semmi köze ahhoz, ami itt PH!-n van. (normális szövegformázásra használhatatlan)(#792) martonx :
Jaja, ez tényleg eléggé jóféle, de inkább az új változata: CKEditor.[ Szerkesztve ]
Sk8erPeter
-
Speeedfire
nagyúr
Lesz az is, csak sok funkció le lesz tiltva benne.
Képet nem tud feltölteni, csak már előzőleg feltöltött képet. Tudom kicsit furán hangzik és az is.
Magában a ckeditorban lesz tiltva a felöltés.
Így csak php route-ot lehet majd berakni.
Kiválasztja az adatbázisból a képet, ami majd a php feldolgoz később. A box-ba pedig így rakná bele:
{photoid:12}Szóval, ezért akarok ilyet. De ez jó is lesz szerintem.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Karma
félisten
válasz Sk8erPeter #793 üzenetére
Arra jó, hogy ha nem kijelölsz valamit, hanem csak simán otthagyod a kurzort valahol a szövegben, akkor a kurzor pozíciójához dobja be a stringet.
Ilyen logika van a PH-s üzenetdobozban is (lásd az eredeti kérdést), a "Kattintható kódok és arcocskák" is az aktuális kijelölés köré, vagy a kurzor helyére kerülnek be.
Próbáld ki, szerintem jót tesz a usability-nek. (Vö. a szöveg végére odatoszott elemekkel primitívebb oldalakon.)
[ Szerkesztve ]
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
Azt kérdezte eredetileg, idézem:
"mint ami itt a PH!-n van tag (félkövér, programkód, stb stb) beillesztésekor, ahol a kurzor van"
A berakott kódnak és jsFiddle-demónak meg a PH!-s félkövérítéshez és egyéb formázások tagjait létrehozó gombokhoz semmi köze - ahogy korábban írtam is. Ha úgy kérdezte volna, hogy olyat akar, mint ami a smiley-knál ("kattintható arcocskák") van, hogy a kurzor helyére bebiggyeszti az előre rögzített szöveget, nem keresgélve az adott szó elejét és végét, hogy azután köréjük pakolja a megfelelő tageket, akkor úgy egyből érthető lett volna, mi a szándéka... (kérdezni is tudni kell )[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
Estét, van valami ötletetek arra, hogy jqueryvel, vagy php-val hogyan lehetne twitter üzenetet küldeni? Azt akarom megvalósítani, hogy ha bejelentkeznek mondjuk 5-nél többen az oldalra, akkor kódból küldenék egy tweetet előre beállított felhasználó twitterjére. Kerestem de nem találtam eddig megoldást :/
Ugyanez érdekelne email-re is. üdv
-
Karma
félisten
A Twiter használatához nézelődj a fejlesztői oldalukon, a REST API-val elvileg minden ilyesmit meg tudsz csinálni.
Maga a hívogatás mehetne JS-ből és PHP-ból is, viszont ez utóbbi esetben durva biztonsági problémák lehetnek... (az OAuth tokent ha plaintextben küldözgeted HTTP-n a backendnek, sok ember baltával szedhetne szét, joggal.)
Emailt viszont szerveroldalon tudsz küldeni. Hogy nem sikerült erről semmit se találnod, ha csak annyit kellett volna beírni a Google-be, hogy "PHP email"?
“All nothings are not equal.”
-
Speeedfire
nagyúr
válasz Sk8erPeter #796 üzenetére
A kérdés jó volt.
Mivel alapból tényleg az lenne a legjobb, de ha nincs jó akkor jó lesz ez a kód.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
Új hozzászólás Aktív témák
- XBOX ONE/PS4/PS5/XBOX SERIES/NINTENDO SWITCH konzolt vásárolnék!
- XBOX SERIES/PS4/PS5/XBOX ONE/NINTENDO SWITCH konzolt vásárolnék!
- PS5/PS4/XBOX ONE/XBOX SERIES/NINTENDO SWITCH konzolt vásárolnék!
- Új Dobozos Lenovo Ideapad Flex 5 x360 Érintős Ultrabook Óriás Tab 16" -40% Ryzen 5 5500U 16/512 QHD
- PS4/PS5/XBOX ONE/XBOX SERIES/NINTENDO SWITCH konzolt vásárolnék!