- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: Bye PET Palack, hello SodaStream
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- eBay-es kütyük kis pénzért
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
Új hozzászólás Aktív témák
-
martonx
veterán
A json nem barátja a dátumoknak, kizárólag string-ként vagy number-ként mennek az adatok json-ban.
Azaz json.parse után neked kell visszaalakítanod a dátumot stringből dátummá.
Persze attól, hogy nekem nem rémlik, hogy lenne más megoldás, lehet hogy valaki tud valami jobbat. -
Muton
addikt
Heló!
Egy ebéd utáni gyors kérdés
van egy objektumom, annak string és objektum (Date) adattagjai. pl id, név string, szül idő: dátum.
ebből csinálok egy json.stringify-al egy szép json stringet, majd json.parse-al visszaalakítom objektummá.Az a bajom, hogy az eredetileg dátum típusú adattagja a kezdeti objektumomnak a parsoltban string lesz.
van rá ötlete valakinek, hogy hogy tudom azt elérni, hogy object (dátum) típusa legyen a parsoltnak is?csináljak rá jsfiddle-t?
-
Karma
félisten
válasz
TomyLeeBoy #2696 üzenetére
Rosszul gondolod. Az AJAX hívást intéző szülőoldal az egyetlen létező dokumentum ekkor, és az ő ready eventje már nagyon régen lement.
Ha script blokkot is hozol be AJAX-szal*, akkor neked kell gondoskodnod a benne lévő kód beindításáról. Vagy a callbackben ráhívsz, vagy úgy kell megírni, hogy még maga a szkript utolsó sorában inicializálja magát.
*: Ez a gondolatmenet csak szélsőséges esetben, vagy mondjuk modulok betöltésénél életszerű, különben meg rizikós és ronda.
-
TomyLeeBoy
tag
Üdv!
Ha egy div-be window.XMLHttpRequest-el töltögetek be tartalmakat, akkor azon belül sosem működik a $(document).ready(function(){ }. Betöltődés után le kellene futnia, vagy rosszul gondolom?
-
Polesz
addikt
válasz
Sk8erPeter #2693 üzenetére
Köszönöm mindenkinek a segítséget!
JQuery és JQueryUI segítségével gyors és átlátható eredményt sikerült hozni. A sebesség pedig maga a tökély
Tegnap már éles teszt volt és a hölgyek elégedettek...
-
Zedz
addikt
válasz
Sk8erPeter #2691 üzenetére
Rendben, igazad van. Legközelebb ha segítség kell majd hozok demót is.
-
Sk8erPeter
nagyúr
Nem muszáj selected attribútumot rakosgatni, nyugodtan használhatod a .val()-t is, gyorsdemó:
Nézegesd közben a fejlesztőpanel konzolját (F12, v. Ctrl+Shift+I).
-
Karma
félisten
Kijelölés-megszüntetéssel ugyanez, meg a hibás változatot is beraktam, hogy látszódjon a különbség
-
Sk8erPeter
nagyúr
Egy kódnak a hibája sokszor csak élesben derül ki, vagy akkor tűnik fel, mi lehet rossz a megközelítéssel. Lehet tippelgetni, sejteni, hogy valami hiba valószínűleg elő fog fordulni vele akkor, amikor használod, lehet agyalgatni, de hidd el, mint említettem, másnak is van munkája, és kevés az ideje, ha már kódban hibát kell keresni, sokkal szívesebben teszi szerintem mindenki egy demó alapján. Mint a topicban láthatod, elég sokszor segítünk, te is kaptál már a kollégáktól segítséget.
Amúgy meg rohadtul nem értem, miért olyan nagy probléma neked felrakni egy egyébként jsFiddle-re bejelentkezés után bármikor törölhető demót (ha az a problémád, hogy így más is eléri később is a kódodat, bár amit egyszer felraksz, azt ne várd, hogy nem fordulhat elő, hogy vki leszedi), miért várod el tőlünk, hogy időt szánjunk rá, ha te magad nem vagy hajlandó időt szánni arra, hogy megkönnyítsd a mi dolgunkat. Ezt így felejtsd el. -
Karma
félisten
Ezt az elemet:.find("option selected")
Cseréld ki erre: .find("option:selected")Az első szintaxis egy <selected> taget keres az optionök leszármazottai között a szóköz miatt.
A második meg selected optiontJSFiddle példa erre a részre.
A kijelölés-megszüntetést nem vettem bele. -
Zedz
addikt
válasz
Sk8erPeter #2687 üzenetére
Mint írtam, javaslatot kértem. Nem azt, hogy írd meg, teszteld le.. stb. Nézzetek rá, ha láttok benne valamit ami nagyon alap hiba, esetleg más módszert ajánlotok, akkor én annak utánanézek és végeztünk is. Itt te komplikálod túl a dolgot.
A személyeskedést pedig hagyd a fórumon kívülre.
-
Polesz
addikt
Egy kérdés:
<select id="valami">
<option value="1">Egy</option>
<option value="2">Kettő</option>
<option value="3">Három</option>
</select>Sikerül felrakni erre a selected .attr()-t a megfelelő helyre. Viszont leszedni egyszerűen nem tudom értelmesen. Több példát is kipróbáltam és valamiért pár választás után összekavarodni látszik.
Pl ez sem működik, lehet valamit nagyon elnézek:
$("#valami").find("option selected").removeAttr('selected'); -
Sk8erPeter
nagyúr
Jó, hogy még neked áll feljebb. Ha esetleg nem sejtetted volna eddig, ebben a topicban nem fizetett bérsegítők vannak, akik azért vannak itt, hogy a kedves kérdéseket beböfögő és megoldásokat követelő kollégákat segítsék, hanem ugyanúgy dolgozó emberek, akik szeretnek szakmai kérdésekben segíteni, irányt mutatni, de nem mások helyett megoldani komplett problémákat. Nem ártana, ha az arcodból visszavéve megpróbálnád tisztelni az itt segítő emberek idejét is, amiből nekik sincs végtelen, és felnyomnál egy nyomorult példát jsFiddle-re, ahelyett, hogy pattognál, és azt várnád, hogy majd mi létrehozzunk magunknak egy példakódot, és teszteljük a működését. Ez nem így működik, az élet nem ilyen, bár lehet, hogy te eddig egy rózsaszín burokban éltél levegőben röpködő csillámpónikkal.
Nem is beszélve arról, hogy ha felteszel egy kérdést egy fórumban, de végül megoldódott a probléma, illik leírni a megoldást is. Ez persze mind a netikett témaköre, nem írott szabály. -
Zedz
addikt
válasz
Sk8erPeter #2685 üzenetére
Nem azt kértem, hogy írjátok meg helyettem, csak azt hogy nézzetek rá és javasoljatok valami megoldást mert elakadtam. faceplam.
De tényleg mindegy azóta megoldottam.
-
Zedz
addikt
válasz
Sk8erPeter #2683 üzenetére
Mindegy akkor.
-
Zedz
addikt
Sziasztok,
Szeretném megírni a saját slide-showm, még ha nem is profin, de azért működjön. A gondom az lenne, hogy szépen léptet 3 képet, amikor végzett előre ugrik de nem kezdi újra a kört. Jelenleg így képzeltem el a megvalósítást. Valami javaslat esetleg? Plugin, egyéb máshonnan származó kód nem játszik.
-
Polesz
addikt
Itt vagyok, ragyogok.
Elgondolkoztam a problémán és végülis jquery-ben oldottam meg, tehát táblázat kirak, majd a megfelelő sorra való kattintáskor egy jquery.dialog ablak jön fel. Megkapja a sorból amit kell, lehet szerkeszteni. Ajax segítségével visszaírom az értéket az adatbázisba és a sorokat is beszínezem ahogy azt elterveztem. Így nem kell elnavigálni az oldalról. A sok select nem lassít, a nyúl is megmarad meg a káposzta is. A kecske elvszett útközben.
Amiért webes felületre vittem a táblázatot és nem excel formátumban játszom vele annak az egyedüli oka, hogy többféle táblázatot kapunk más, más formátumban. Ezeket kézzel egyformára hozni elég macerás ezért ezt már php-ban megoldottam, hogy mindegyik csak azokat az oszlopokat vegye át amire szükségünk van. Napi több száz, néha ezer sor esik be egy-egy táblázatból. Ebből természetesen ellenőrzésre csak a töredékének kell kerülnie, ezért a felesleget szépen kigyomlálom. A későbbiekben ezek az adatok egy másik feldolgozáshoz kapcsolódnak.
Jelenleg az egész egy katyvasz ami a cégnél van. Egy-egy ellenőrzéskor (mondjuk fizetésnél) megnyitnak 20 táblázatot, olvasnak emaileket és abból is információkat másolgatnak mire véglegesre összeáll egy táblázat. Természetesen ezt még tovább feldolgozzák, táblázatból táblázatot gyártanak. Szerencsére a nagy részét már sikerült így kiváltanom. A mostani rendszer egy nagy egészben fogja az összes adatot tartalmazni és elég "egy gombnyomás" hogy minden a felhasználó arcába csapódjon
-
GG888
senior tag
válasz
Sk8erPeter #2676 üzenetére
abszolút jogos a felvetés
Egy óra múlva itt van mustrára a kliens és nem a kódot fogja nézni, hogy te, ez az elrendezés milyen szép
(max Sublime-ba nézi a színeket), hanem megnézi avégfél/negyedkész terméket és értékeli, közli a módosítandó dolgokat.
Még tán hasznosabb is, ha ilyen katyvaszt lát az ügyfél, hogy ez milyen marhanehéz, meg komplikált, meg összevissza -
Sk8erPeter
nagyúr
Hát ez valóban jó gusztustalan, nem csak az, hogy a plain JS-t ilyen mértékben kutyulod jQuery-vel, hanem az ilyen onkeypress-es és egyéb attribútumokat használod, ahelyett, hogy különpakolnád a JavaScript-kódokat a HTML-től, no meg a CSS-t is szépen beleömleszted inline módon a style attribútumba, de bízom benned, hogy majd megszépíted
, de Guglizni is tudni kell (nekem a Bing nem az esetem
), ezt is 10 másodperc volt megtalálni, neked is biztos sikerült volna, ha erősebben próbálkozol:
-
Sk8erPeter
nagyúr
Korábban feltettem egy demót egy JavaScriptes karakterkód-kiíróról, ez biztos, hogy segít:
http://jsfiddle.net/Sk8erPeter/EAjYe/"Már csak azt nem tudom, hogy js-sel hogyan kell beleszuszakolni egy textareaba egy sortörést..."
Khhmm, khmmelsőtalálat, köhh.
"\n" ... -
GG888
senior tag
válasz
Sk8erPeter #2671 üzenetére
http://jsfiddle.net/gajdi/yBhSv/1/
Formázással nem foglalkoztam, aztán hogy vegyesen van Jquery meg JS, javítva lesz.
-
GG888
senior tag
Van egy formom egyetlen textarea-val, enterre nem is küldi el, azt már megkerültem, viszont szeretném, ha Shift+Enterre lehetne sort törni.
Ebben tudnátok segíteni?
function runScript(e) {
if (e.keyCode == 13) { //ENTER MEGNYOMÁSAKORtulajdonképpen a shift keycode-ja kellene, és akkor dobok a feltételbe egy ''ÉS''-t
Már csak azt nem tudom, hogy js-sel hogyan kell beleszuszakolni egy textareaba egy sortörést... -
GG888
senior tag
válasz
martonx #2666 üzenetére
A mögötte levő basiccel kb. azt valósítassz meg amit nem szégyellsz.
Láttam én már olyan céget, ami egy-az egyben egy ilyen excel táblára épült...pár ezer partner, meg kb. AS-ig oszlopok...számlázóprogrammal össze volt kötve, meg minden létezőt beleépítettek.Mondjuk aztán CRM-re váltottak.
Tényleg nálatok nem játszik egy CRM rendszer?
Na nem a Microsoft Dynamics, bár nagyon jól testreszabható, meg mindent tud, csak tetűlassú, csak IE-ből működik, a licensz-díjat meg inkább hagyjuk is.
Mondjuk ZohoCRM (ha még ingyenes)... -
martonx
veterán
Én pont ezért firtattam már a legelején, hogy biztos ez kell nekik? Ha csak ez kell, én fognám és közösíteném az excelt, aztán hagy dolgozzanak benne annyian amennyien akarnak egyszerre.
Nem kell ide google drive se, a sima excelnek is van csoportmunka támogatása. Az excel (már ha tényleg az MS excelről beszélünk, nem pedig valami Libre Office-os klónról) rengeteget tud, csak éppen a userek 99%-ának fingja sincs a benne rejlő lehetőségekről. -
Male
nagyúr
-
Male
nagyúr
Csak hogy még egy problémát felvessek az ezer sor egyben szerkesztéssel: Gyanítom akkor a mentésnél mind az ezer sort mented is (persze nem biztos, nem olvastam el mindent a megoldásodról). Namost ez egyrészt szintén rohadtul erőforrás pazarló, de ami nagyobb probléma: Gizike megnyitja az ezer sorát, fél napja írkál át minden mezőt... közben Gabika is végez a pasziánszal, és kattint... bejön neki is az ezer sora szerkeszthetőre (van egy pár átfedés a két ezer sor között), és mondjuk egyetlen mezőt módosít.. Aztán Gizike megnyomja a rögzítés gombot, mert kész a kávé, szól Gabikának, aki gyors rányom a rögzítésre szintén.... és Gizike fél napos munkája a kukában.
Persze kivédhető ez, és lehet, hogy gondoltál is rá, de ha nem, akkor készülj fel
(Ez a probléma ha csak egy sort szerkesztesz egyszerre, akkor minimalizálódik, de még oda is rakhatsz védelmet persze.) -
Zedz
addikt
Sziasztok,
Visszatértem ismét az árnyékos problémámmal, mert a megrendelő máshogy szeretné. Most 1 kép helyett kaptam 20 darabot, amely az árnyék 1-1 pozícióját mutatja. Hogyan tudnám azt megcsinálni, hogy szépen léptesse az árnyékot, képről-képre, mintha folyamatos lenne a mozgása?
-
Sk8erPeter
nagyúr
válasz
fordfairlane #2656 üzenetére
"ragaszkodtok az 1000 sornál az inline editáláshoz", "külön editáló oldallal"
azért Te is kapsz egy facepalmot
na jó, befejeztem a grammarnaziskodást, de ez olyan szinten béna(#2653) GG888 :
na ez tényleg olyan példa, amit azért igen nehéz úgy átültetni magyar nyelvreViszont ellenpéldának mindenképp jó volt. Olyan szavak vannak benne, amiknek a fordítása csak erőlködés, és az ember visszakérdez, hogy "na most akkó' mi va'?". Viszont ez az "editálás" szó bakker...
-
fordfairlane
veterán
-
martonx
veterán
"Az Excel táblákat viszont egyszerűen nem lehet úgy összefésülni, hogy kiszűrjük az ismétlődő elemeket vagy a régebbi bejegyzéseket." - ez ugyan más topik feladata, de már hogy a fenébe ne lehetne? A feladat ismerete nélkül akár egyetlen kattintással ki tudod szűrni benne az ismétlődő elemeket. Pont erre való az excel, nem pedig arra, hogy Marika néni a család havi költségvetését vezesse benne. Bár persze arra is lehet használni.
-
Karma
félisten
válasz
fordfairlane #2656 üzenetére
Az inline szerkesztésre +1000, viszont szerintem a külön oldalas szerkesztés feleslegesen törné darabokra az adatgyűjtő munkáját. Esetleg popuppal, de navigálni tényleg ne menjen sehová ha nem muszáj.
-
Polesz
addikt
válasz
Sk8erPeter #2650 üzenetére
Bocsánat az editálás szó miatt. Nagyon sok sz@rság honosodik meg sajnos így gépelés közben. Pedig én magam is harcolok ellene.
Témához:
Egyszeri adatrögzítő lányokról van szó! Ennél a lényeg, hogy folyamatosan nézik át a táblázat sorait és a végén lévő <select>-tel választják ki, hogy ez most rendben, levonandó, stb. Közben megjegyzést is kell fűzni hozzá, hogy mit és miért.Amiért nem Excel táblát szeretnék használni, hogy folyamatosan töltjük le a számlasorokat (naponta, két naponta) és ellenőrizzük, mert ha 2-3 hetente lenne csak ellenőrzés az nehezíti a későbbi visszaellenőrzést. Az Excel táblákat viszont egyszerűen nem lehet úgy összefésülni, hogy kiszűrjük az ismétlődő elemeket vagy a régebbi bejegyzéseket. Ekkor 2x-3x is ellenőriznénk azt amit már ellenőriztünk és az idő így is véges.
Még gondolkozom egy olyan megoldáson, hogy a kiválasztott soron történő kattintáskor feljön egy ablak és abban lehet elvégezni a műveleteket, majd a tábla megadott részére visszaírom az adatokat jquery segítségével (textarea->megjegyzés, select->művelet). Viszont ehhez még nem érzek annyi tudást hogy rögtön azonnal sikerüljön megírni. Azonban lehetséges, hogy inkább ebbe az irányba elindulok. Átolvasok pár oldalt és dokumentációt.
Ha lenne pár kérdésem azt felteszem itt. Nem konkrét megoldásokat kérek hanem útmutatásokat, mert csak így tudok tanulni
-
GG888
senior tag
válasz
Sk8erPeter #2650 üzenetére
meg commitoljuk a master branchet
-
martonx
veterán
"egy EXCEL tábla kiváltása a cél" - azért az egyéb lehetőségeket végiggondoltad? Pontosabban miért kell kiváltani az excelt? Biztos ez a megfelelő megoldás a problémádra, hogy webalkalmazást készítesz helyette?
"minden sort editálni kell sajnos" - ez OK, de butaság minden sort editálhatóvá generáltatni szerencsétlen böngészővel. Elég csak azt a sort editálhatóvá alakítani, amelyiket kiválasztja a felhasználó.
-
Sk8erPeter
nagyúr
A JSON-t nem kell ám túlmisztifikálni, csak egy nagyon könnyen kezelhető formája az adatoknak, komoly támogatással (a legnépszerűbb programozási nyelvek vagy natívan támogatják, vagy létezik hozzá kiegészítő könyvtár).
PHP-ben például egy egész komplex tömböt egyszerűen áthajthatsz a json_encode() függvényen, visszaadod szerveroldalról annak kimenetét (nem raksz össze semmiféle táblázatot, amivel szerveroldalon kéne tökölni, ha AJAX-os kommunikációról van szó), kliensoldalon pedig jQuery-vel nagyon egyszerűen fel tudod dolgozni ezt a formátumot."minden sort editálni kell sajnos"
Mióta létezik olyan magyar szó, hogy "editálni"?Segítek: a szó, amit kerestek, az a "szerkeszteni".
Ez pont annyira béna és erőltetett műszó, mint az "applikáció" (nincs ilyen, a megfelelő szó az alkalmazás), a "performancia" (nincs ilyen, a megfelelő szó a teljesítmény), és még sorolhatnám.
Bizonyos szakmai szavakat nehéz lefordítani, mert nincs igazán találó magyar megfelelőjük, vagy szemléletesebb, amikor az angol eredetit használjuk, esetleg segít a gyorsabb megértésben (pl. a "pager" szót többször látom, mint a "lapozó" szót, de lehet, hogy ez most nem a legjobb példa, csak pont ezt említették előttem), de a felsorolt szavaknak pont van.Na, de hogy érdemben is reagáljak rá, nem hiszem, hogy egyszerre szeretne valaki 1200 sort szerkeszteni. Épp ezért kellene lapozó.
-
Polesz
addikt
válasz
Sk8erPeter #2647 üzenetére
Valóban átláthatatlannak tűnik a változónév adás, azonban egy EXCEL tábla kiváltása a cél és az oszlopok neveit vettem alapul. Van egy cifrább táblám ami AQ-ig megy el amiből természetesen nem kell mind.
A JSON-t megnézem most már, ami egyszerűsít az nem öl meg és nekem is jobb lesz így
fordfarlaine: minden sort editálni kell sajnos. Az 1200-as betöltés egy durva példa max 2-300 sorról lesz szó egy-egy alkalommal. Kivéve amikor beesik egy hatalmas számla
-
biker
nagyúr
válasz
Sk8erPeter #2647 üzenetére
pl símán mehet jquery dnamic data tables-nek, csak leizzad a corei7 tőle
-
Sk8erPeter
nagyúr
list($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r) = $row;
echo '<tr class="row_a'.$c.'"><td>'.$b.'</td><td>'.$d.'</td><td>'.$e.'</td><td>'.$f.'</td><td>'.$g.'</td>
<td>'.$h.'</td><td>'.$i.'</td><td>'.$j.'</td><td>'.$k.'</td><td>'.$l.'</td><td>'.$m.'</td><td>'.$n.'</td>
<td>'.$o.'</td><td>'.$p.'</td><td>'.$q.'</td><td><textarea class="row1">'.$r.'</textarea></td>Uhh, ez azért erős. Erről a változónév-használatról javaslom, sürgősen szokj le. Egyébként sem nyersz semmit azzal, hogy a $row változóból a megfelelő kulcson lévő értékeket átrakod egy másik változóba, aminek $a, $b, $c, stb. a neve, inkább értelmesen kellene elnevezni/lekérni az oszlopokat (van alias).
Mindenesetre a kód karbantartása szempontjából a legrosszabb döntés ilyen változóneveket használni. Persze ilyen mennyiségnél nyilván egyből lehet tudni, ezzel mit is akartál csinálni, de nehogy aztán rászokj, meg ugye előfordulhat, hogy ez a kód még bővül, és kezdeni is kell valamit a kiíratáson kívül a változókkal, akkor meg nagyon fájni fog később, hogy ilyen változóneveid vannak.Amúgy 1200 sor formelemekkel kiegészítve, az tényleg rengeteg egy táblázat összerakásánál, valószínűleg ráadásul felesleges is akkora táblázatot megjeleníteni, úgysem lát át akkorát senki. Bár lehet, hogy kliensoldalon akarod utána szűrni, nem tudom, de mindenesetre ahogy már írták, összerakni egy ekkora táblázatot, mindenféle plusz elemével együtt, majd ezt bepasszírozni a DOM-ba, feldolgozni nem gyengén erőforrás-igényes a böngészőnek. És tényleg nem szerveroldalon kellene összeraknod. (JSON-ről, meg json_encode-ról itt írtam alul, hátha segít: [link].)
-
fordfairlane
veterán
Sajnos nagy adatmennyiségről van szó, de belső használatnál viszont gyorsan fut az egész.
A kérdés az, hogy szükség van-e ennyi formelemre vagy sem. Ugyanis formelemre ott van szükség, ha módosítani akarsz valamit. Ha nem egyszerre módosítasz ezer tételt, akkor ez így ebben a formában hibás megközelítés. Nem az egészet kell editálhatóvá tenni, csak egy-egy tételt, azt meg lehet külön oldalon.
-
martonx
veterán
"Ez egy hobbi programozás. Ha kész utána átnézem a JSON-t is, de ezt most működésre kell bírni gyorsan." - itt némi ellentmondást érzek. Hobbi programozás, de gyorsan működésre kell bírni?
Egyébként forfairlane-nek igaza van. Pagelned kellene, hogy ne kelljen szerencsétlen böngészőnek több tízezer input-ot, meg select-et a hozzájuk tartozó akár több százezernyi option-nel lerenderelnie.
-
Polesz
addikt
válasz
fordfairlane #2642 üzenetére
Igen, közben rájöttem, kipróbáltam hogy csak echo a nyers adatnak és láss csodát fut mint az istenharagja
Sajnos nagy adatmennyiségről van szó, de belső használatnál viszont gyorsan fut az egész.
-
Polesz
addikt
Már majdnem jóság van, viszont egy olyan kellene hogy a <TEXTAREA> értékét meg tudjam kapni.
<tr><td>1</td><td>2</td><td><textarea></textarea></td><td><select></select></td></tr>
<tr><td>1</td><td>2</td><td><textarea></textarea></td><td><select></select></td></tr>
<tr><td>1</td><td>2</td><td><textarea></textarea></td><td><select></select></td></tr>Ahogy már régebben írtam a select kiválasztás után szeretném az adott soban lévő textarea értékét kinyerni, hogy .ajax feldolgozással tovább tudjam adni a select értékével együtt.
-
-
Polesz
addikt
Mivel jelenleg itthonról fejlesztem a belső gépen futó alkalmazást ezért rdesktoppal beléptem egy belső gépre és elindítottam ott is a lekérdezést. 3 mp alatt sikerült értékelhető eredményt produkálni, tehát a külső használattal van itt a probléma. A dolog így megoldódik magától mivel ez kimondottam intraneten használt alkalmazás.
-
Polesz
addikt
válasz
martonx #2637 üzenetére
Az elszúrás ott van, hogy a php fájl amit meghívok .load() segítségével adatbázisból olvas ki adatokat és egy komplex táblázatot rak ki. 1200 sor és 15 oszlop (textarea, select minden sorban). Maga az adatok kiolvasása nagyon gyorsan lezajlik, de a táblázat összerakása és kiírása veszi el az időt.
<table cellpadding="0" cellspacing="0" border="0" class="napiszam">
<thead><tr><th>Típus</th><th>Rendszám</th><th>Dátum</th><th>Idő</th><th>OK</th><th>Hol</th><th>Mit</th><th>Bizonylat</th><th>Kód jel</th><th>Me</th>
<th>Egys.</th><th>Nettó1</th><th>PN1</th><th>Nettó2</th><th>PN2</th><th>Megjegyzés</th><th>Művelet</th></tr>
</thead>
...
A PHP rész:while ($row = $results->fetchArray()) {
++$count;
list($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r) = $row;
echo '<tr class="row_a'.$c.'"><td>'.$b.'</td><td>'.$d.'</td><td>'.$e.'</td><td>'.$f.'</td><td>'.$g.'</td>
<td>'.$h.'</td><td>'.$i.'</td><td>'.$j.'</td><td>'.$k.'</td><td>'.$l.'</td><td>'.$m.'</td><td>'.$n.'</td>
<td>'.$o.'</td><td>'.$p.'</td><td>'.$q.'</td><td><textarea class="row1">'.$r.'</textarea></td>
<td>
<select name="'.$count.'">
<option value="0"> </option>
<option value="1">Rendben</option>
<option value="2">Levonandó</option>
<option value="3">Ellenőrzésre</option>
<option value="4">Később...</option>
</select>
</td>
</tr>';
}...
Kipróbáltam <TABLE> helyett <DIV>-be összerakni az egészet és gyorsabb (SELECT nélkül is), viszont a SELECT használata itt is lassít de jelentősen.
Valószínűleg valamit át kell szervezni a táblázat összeállításakor, de egyelőre nem tudom hogy mit.
-
Cathfaern
nagyúr
Ez tökéletesen példája annak, hogy eredetileg a HTML-t text szövegek formázására találták ki, a php-t arra, hogy a text szöveg elejére ne csak azt lehessen írni, hogy "Dear Guest", hanem a nevedet is, a JS-t meg arra, hogy a neved ne csak ott legyen, hanem villogjon is
Aztán mindezt addig toldozták meg foldozták, amíg létre nem jöttek olyan dolgok, mint a HTML5, meg az ajax. De az alapok attól még ugyanazok (sajnos), és így mai felhasználási szemszögből nézve triviális dolgok nem, vagy csak bonyolultan oldhatóak meg.
Hogy ON is legyek, a problémádra egyik megoldás, hogy a fájl feltöltést asyncron ajaxxal küldöd el (ugye alapból ilyen), a PHP feldolgozóban pár soronként az adatbázisba változtatsz egy mező értékét (célszerű session alapján valamiféle ID-hoz menteni ezt, hogy konkurrens műveletnél is tudd melyik gép az, és biztos ne akadjanak össze). Kliens oldalon pedig kell egy setintervalos (vagy settimeoutos) js function, ami egy újabb ajax lekéréssel kiolvasgatja ennek a mezőnek az értékét, és ez alapján növelgeti a progress bart. Előnye, hogy a szerveren ehhez nem kell semmi beállítást változtatni (ugye erre vagy van lehetősége az embernek, vagy nincs), hátránya, hogy az SQL írási műveletek miatt valamivel lassabb lesz a fájlfeldolgozás (nyilván minél gyakrabban frissíted a mezőt, annál lassabb). Kivéve persze ha kihasználod a jelenleg még gyakorlatilag béta állapotban lévő PHP-s szálkezelést
-
Polesz
addikt
válasz
martonx #2633 üzenetére
Megcsináltam a loader.gif-es mókát, azonban a betöltés kezdetekor elindul az animáció majd meg is áll. Egyszerűen nem tudom hogy milyen terhelés miatt, de mintha már nem foglalkozna vele. A php fájl betöltődik utána de 8-10 másodperc minimum kell neki 1200 adatnál.
Kicsit idegesítő hogy kiakad a "várj dolgozom jelző"
-
Polesz
addikt
válasz
martonx #2633 üzenetére
Pedig jó lett volna valami triviális.
A lényeg hogy a meghívott fájlban adatbázis művelet zajlik. A feldolgozandó sorok számát tudom. Ha ezt át tudnám adni és azt hogy hol tart akkor abból a progress már tudna értelmes dolgot mutatni amíg a táblázat rajzolás zajlik a háttérben és a végén megjelenik a #content részben.
-
martonx
veterán
Amit szeretnél az nem túl triviális, mégha annak is tűnik. Javaslom, hogy inkább tegyél ki valami kis loader.gif-et, aztán amikor megjött az adat, akkor tüntesd el.
Jó megoldás tud még lenni, hogy az elején megsaccolod, hogy meddig tart a folyamat, ha mondjuk tudod pl. file feltöltésnél file méret alapján, vagy fogsz egy felső korlátot és azt írod ki másodpercben.
Pl. tudod, hogy valami időigényesebb folyamat az esetek 99%-ában 8-15 másodperc alatt fut le terheltségtől függően. Ekkor érdemes lehet kitenni egy 15-ről visszaszámlálást, maximum már 8-nál meg lesz az eredmény. -
biker
nagyúr
válasz
Peter Kiss #2625 üzenetére
jelentem, a megoldás egyben bugot is generál, ha jquery validation-t is használunk. Mivel a [link] féle validátorral összeakad
Szigorúan oda kel figyelni arra, hogy a datatype féle form, aminek a hidden mezőit is begyűjtjük, csak arra a form névre legyen igaz az ellenőrzés, a többi formra ne, mert ha a validátor nem engedi elküldeni a formot, mert nincs kitöltve minden, akkor ezen trükk, ami beolvas minden mezőt, felülírja, és engedi elküldeni a formot, szóval a "gyári" megolás helyett, ahol csak 'form' van megadva, helyette #formneve módon kell megadni, mely formnál írjuk felül a hidden inputok begyűjtésétCsak ha valaki hibából hibába futna, jótanács...
-
Polesz
addikt
Egy kérdésem lenne az itt "lakó" mindent tudókhoz.
Megoldottam, hogy egy <div id="content"></div> részbe a .load(URL) függvénnyel töltök be tartalmat. Mivel ez azonban sokáig tart ki is írtam, hogy bocs dolgozom, de jó lenne közben informatívan kiírni hogy éppen mit is csinálok.
Mondjuk a progress()-t képzeltem el ehhez amit növelgetnék, csak nem tudom hogy .load() közben ez hogy vitelezhető ki.
Remélem érthetően fogalmaztam így délután 3 körül
-
Speeedfire
félisten
válasz
Sk8erPeter #2628 üzenetére
Php oldalon tömb...
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2627 üzenetére
Attól még az továbbra sem tömb, amit mutattál...
olvasnivaló:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array -
Speeedfire
félisten
válasz
fordfairlane #2622 üzenetére
Jó volt így, csak én bénáztam el.
-
biker
nagyúr
válasz
Peter Kiss #2625 üzenetére
Huhh, igen, csak 6 segítő hozzászólásból kellett összeollózzam a helyes megoldást, mert mindben volt némi hiba, de halleluja, megvan
-
biker
nagyúr
hülye "hibába" futottam, ami lehetne akár helyes működés is, de jó lenne megoldani
datables
ezt használom, és lenne pár száz soros tábla. minden sorban select lehetőség, hogy sok sort kijelölhessek, és elküldhessem formmal. Ugye js, tehát minden sort letölt a helyi gépre, itt dolgozom fel.Nos, minden szép és jó, amíg....
beállítom, pl 100 sor látszik, kiválasztok 40-et, majd azt mondom csak 10 sor látszon, és ott épp 3 van kijelölve.
Vissza 100-ra, minden eddigi kiválasztás rendben
vissza 10-re, és elküldöm a formotés csak azokat a sorokat küldi el, amik akítvak voltak láthatóan a képernyőn.
Én szeretném az összes kiválasztott sort elküldeni, és emlékszik is rá a tablesorter
de nem küldi el a form.
Ez áthidalható???
-
trisztan94
őstag
Sziasztok!Hogy lenne a legeredményesebb nézni, hogy egy <div> bármelyik gyermekére kattintottak-e?van ez:<div class="input-group kalkulator-option" data-price="20000">
<span class="input-group-addon">
<i class="icon-lightbulb icon-fixed-width"></i>
</span>
<p class="form-control">Valami szöveg</p>
<span class="input-group-addon kalkulator-info-box" ><i class="icon-info icon-fixed-width"></i></span>
</div>Azt szeretném, hogyha a kalkulator-option div bármelyik gyermekére (tehát ha a span-ra, ha a szövegre, vagy akár az ikonra kattintanak) kattintanak, akkor lefusson egy function.Én a $('.kalkulator-option').children()-re tippeltem, de nem megyVagy mindegyiknek adok egy megegyező class-t?Szerk: Mégis megy .children()-nel, elfelejtettem frissíteni
Azért ha mégis van egy jobb megoldás, ne habozzatok
-
fordfairlane
veterán
válasz
Speeedfire #2621 üzenetére
Lehet, bár ez a példádban nem tömb, hanem object literal, vagy hashmap.
-
Speeedfire
félisten
Ajax hívásnál lehet "manuálisan" tömböt átadni?
$.ajax({
url: '/',
data: {
pelda: 1,
tomb: {pelda:1, pelda2:2}
}
}); -
Sk8erPeter
nagyúr
válasz
trisztan94 #2618 üzenetére
Időközben megváltoztattam az álláspontomat, jó?!
Amúgy komolyra fordítva igazad van, hogy nem volt jogos (igaz, előbb amúgy a select is kissé megzavart, amikor a select-listában való elem kiválasztásának megváltozásával kapcsolatos eseményről volt szó), biztos az én hülyeségem, de valahogy jobban szeretem kódolás közben az egyértelműsített dolgokat, nálam az .on() a fejemben a dinamikusan generált elemekre való eseménykezelésre való, a .click(function(){}), .change(function(){}) és hasonlók pedig az oldalon eleve létező elemek event handlere, ez egyéni dolog, DE ahogy Te használod, az is jó.
-
trisztan94
őstag
válasz
Sk8erPeter #2617 üzenetére
De akkor meg nem ertem a korabbi mondatod, miszerint en miert .on()-nal csinalom, amikor lehet sima .change()-el is
(igaz, hogy select-et irtam, de change-re gondoltam)
-
Sk8erPeter
nagyúr
válasz
trisztan94 #2612 üzenetére
"En mindenre .on()-t hasznalok, van valami teljesitmenyromlas ezaltal?"
Nincs. Érdemes megnézni a forráskódot a .click()-nél:http://james.padolsey.com/jquery/#v=1.10.2&fn=jQuery.fn.click
function (data, fn) {
return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);
}Magyarul tehát a "motorháztető alatt" az .on() metódust használja a .click() event handler is.
Van kapcsolódó topic is Stack Overflow-n:
http://stackoverflow.com/questions/9122078/difference-between-onclick-vs-click
-
Sk8erPeter
nagyúr
Egyetértek az előttem szólóval, ha már úgyis használja valaki a jQuery-t, akkor pont az mutat idétlenül, hogy össze-vissza kutyulja a plain JS-kódolást a jQuery-kódokkal.
Sztem nem a legjobb példát hoztad fel arra, ha a jQuery túl van erőltetve, mert nem elsősorban ilyen dolgokban nyilvánul meg, hanem például amikor valaki a legegyszerűbb, sima CSS-ben is könnyen megoldható dolgokra is erőlteti a jQuery-t (vagy akár plain JS-t), na meg másik szempont, hogy manapság, a HTML5+CSS3+JS korában egész sok dolog tök jól megoldható natívan is, külső library nélkül (más kérdés a böngésző-támogatottság persze), így nem biztos, hogy van értelme erőltetni azt. Attól függ. Másik szempont persze, hogy divat lett egy kissé szidni a jQuery-t is. Bár mobilalkalmazásnál nyilván nagyon is számíthat az esetleges teljesítményromlás, de asztalira optimalizálva azért hacsak valaki nem kódol nagyon szarul, nem nagyon, legalábbis manapság, átlagos webalkalmazások esetében.A jQuery lekezeli a kompatibilitási parákat is, nyilván ezzel nem mondok újat (addEventListener vagy attachEvent):
http://james.padolsey.com/jquery/#v=1.10.2&fn=jQuery.event.addAmúgy a múltkori vádaskodásra látom azóta sem találtad meg az alátámasztást.
-
fordfairlane
veterán
-
trisztan94
őstag
-
Jim-Y
veterán
válasz
trisztan94 #2612 üzenetére
ha csak egy sima click eseményt akarsz lekezelni, akkor azt miért jqueryvel csinálod?
Szerintem sokak már tényleg kezdenek átesni a lovon és mindenre jquery-t használnak amire simán jó lenne az alap js-es változat.
Pl a jquery-s selectorok nagyban segítik/gyorsítják a munkát, az hasznos szerintem, de pont egy click eventet megírni kb semmiből sem tart javascriptben. -
trisztan94
őstag
válasz
Sk8erPeter #2611 üzenetére
Tenyleg, a change-re gondoltam, nem tudom miert irtam azt
En mindenre .on()-t hasznalok, van valami teljesitmenyromlas ezaltal?
Pl statikushtml.on(click)
-
Sk8erPeter
nagyúr
válasz
trisztan94 #2610 üzenetére
Hát nem, nem így néz ki...
Az .on() nagyon nem arra való, hogy egy select-listában való kijelölés megváltoztatására meghívódjon egy event handler.
Sokkal inkább így:
pl.:
$('select[name="select-blabla"]').change(function(e){
var $self = $(this);
console.log('choice: ', $self.val()); // value attribútum értéke, szimpla választhatóság esetén string, multiple esetén object!
});Az .on() akkor lenne érdekes, ha maga a select-lista AJAX-szal lenne generálva, és az újonnan DOM-ba bekerült elemekre is szeretnél event handlert kötni.
=====================
(#2607)-re még: a vicces az, hogy az IE10-ben a legfinomabb az átmenet ebben a forgatásban, FF-ban és Chrome-ban össze-vissza ugrándozik a felirat forgás közben, rettenet ocsmány.
Nem gondoltam volna, hogy van ehhez hasonló dolog, amiben az IE10 jön ki győztesen.
-
trisztan94
őstag
válasz
Sk8erPeter #2609 üzenetére
Valahogy így néz ki, ha esetleg a kérdező nem tudná:
$(selector).on('select', function() {
//ajax...
}); -
Sk8erPeter
nagyúr
"ha megcsinálok egy select-et és azt szeretném, hogy minden kiválasztásnál egy php kód fusson le annak hogyan kezdjek neki."
-
Sk8erPeter
nagyúr
Teljesen felesleges ezt jQuery-vel intézni, amikor ezt sima CSS-kódban megírva is jól működésre lehet bírni. Lásd tr:hover {}.
(#2606) Polesz : látom közben rájöttél.
Amúgy általánosságban is kijelenthető, hogy ha valamit tök jól meg lehet oldani CSS-sel, akkor nem szabad erőltetni ugyanezt JavaScriptben.
-
Sk8erPeter
nagyúr
"Először csak erre írom meg, aztán a többire."
Aztán jól elfelejted.Nincs értelme külön megírni, ha Google-be beírod a "CSS3 generator" kulcsszavakat, akkor máris találsz online generálóprogramokat, amik megírják helyetted azt a plusz ~három sort.
Korábban pedig már linkeltem egy jól működő, kipróbálható kódot (mondjuk most pont nem működik átmenetileg a jsFiddle), azt miért nem veszed át?
Amúgy írja is a linkelt hsz.-ben, hogy "And, btw: you don't need to prefix css3 transforms with jQuery 1.7+".======
(#2603) trisztan94 :
"Rakj egy vesszot a kettospont helyere."
Ne rakjon, mivel itt objektumot ad át a .css() metódusnak. Láthatsz ilyenre példát a hivatalos oldalon:
http://api.jquery.com/css/ -
Polesz
addikt
Másik kérdésem, ha megcsinálok egy select-et és azt szeretném, hogy minden kiválasztásnál egy php kód fusson le annak hogyan kezdjek neki.
A lényeg, hogy adatbázisban tárolok adatokat amit táblázatban megjelenítek, ha itt módosítás történik azt szeretném a sor elhagyása után rögtön rögzíteni.
Ha nagyon bonyi akkor a végén egy "save" gomb és csók, de tuti van valami okosság
-
Polesz
addikt
Ez a kód részlet problémás jquery-ben vagy egy normális megoldásnak számít?
Ha a kurzor a sor fölött áll akkor színezzen, vagy simán .css-ből generáljam ki jól? Mivel a soroknak alapból van színe (más és más) ezért gondoltam erre a megoldásra.
$("tr").mouseover(function() {
$(this).addClass('highlight');
});
$("tr").mouseout(function() {
$(this).removeClass('highlight');
}); -
Zedz
addikt
válasz
Sk8erPeter #2601 üzenetére
Először csak erre írom meg, aztán a többire. Most elkezdtem haladni egy másik irányba, nagyjából járható is, de megint csak gondom akadt.
setTimeout(function(){
$('#shadow').css({
'-webkit-animation-duration':'15s'
});
},2000);Ezt nem akarja most elfogadni. Minden más css beállítás működik, tehát a "keret" az jó. Nem tudom mi baja lehet vele.
Szerk.: Az árnyékom már megfelelően mozog, ez már lassítaná.
-
Sk8erPeter
nagyúr
'-webkit-transform': 'rotate(' + 50 + 'deg)',
Egyrészt nem jó, hogy csak a WebKit-alapú motorokkal foglalkozol, másrészt nincs értelme ennek a string-összefűzésnek, harmadrészt pedig ez nem így működik, hanem valahogy így:
van kipróbálható példa is jsFiddle-re felrakva.
Új hozzászólás Aktív témák
Hirdetés
- TCL LCD és LED TV-k
- Samsung Galaxy S25 Edge - a tegnap határán
- Bambu Lab 3D nyomtatók
- Battlefield 6
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- MIUI / HyperOS topik
- Fotók, videók mobillal
- Gránit az asztalon: teszten az AMD új platformja
- Sony MILC fényképezőgépcsalád
- One mobilszolgáltatások
- További aktív témák...
- Eredeti Lenovo USB-C 65W töltők
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9700X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B450M R5 5600 16GB DDR4 512GB SSD RX 6700XT 12GB Zalman N4 FSP 700W
- DELL Precision 5560 i7-11850H 16GB 512GB T1200 FHD+ 1 év garancia
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
Állásajánlatok
Cég: FOTC
Város: Budapest