- Három Pixel 9 jött Magyarországra
- Milyen okostelefont vegyek?
- Xiaomi Mi 11 Ultra - Circus Maximus
- Android alkalmazások - szoftver kibeszélő topik
- Fotók, videók mobillal
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Google Pixel 8a - kis telefon kis késéssel
- Magisk
- Okosóra és okoskiegészítő topik
- Xiaomi Mi 11 Lite - 4G-vel vagy 5G-vel kéred?
Új hozzászólás Aktív témák
-
adam_
senior tag
Az a baj, hogy linkelek én hozzá html-t, meg css-t, de Drupalból ezt kinyerve így néz ki fiddleben: link
Segítenél abban, hogy hogyan lehetne a kódom effektívebb?
Ez a hide / show funkcionalítás nálam nem akar összejönni, úgy értem, ha egyszer elrejti ... végleg elrejti, és vissza se lehet hozni, nem beszélve arról, hogy nem is azon a display méreten rejti el, ahogy szeretném, és amelyre tettem kisérletet az if .. else ágban. És fogalmam sincs, hogy hol lehet a hiba..
Elméleti síkon, a logikát szeretném megérteni, hogy mi lehet a hiba, hogy tudjam javítani a kódom.
-
Sk8erPeter
nagyúr
Egyetértek a kiegészítésekkel, főleg a kapcsos zárójelek hiányára vonatkozó tanáccsal.
Rengeteg amúgy elég jó fejlesztő is lehagyja, mert számára úgy a jobb, pedig szerintem rondábbá is teszi a kódot (nem látszik olyan szépen, hogy az adott sor mihez tartozik, még ha be is van húzva a kód, ahogy illik, számomra hiányzik az összetartozás ennyire explicit jelzése), ezenkívül jó nagy szopások kellemes kis forrása lehet, amikor várnád, hogy valami egy feltételtől függően működjön, de nem csak attól függően teszi, vagy ha épp nem is tart erre olyan sokáig rájönni (mert homlokára csap a fejlesztő, hogy ja, odatette azt a plusz sort, de nem használt korábban kapcsos zárójelet), jó eséllyel kell futni plusz egy/két/három/stb. kört tök feleslegesen. A legjobb, ha az IDE úgy van beállítva, hogy ilyenért azonnal pampog.
-
Speeedfire
félisten
Nem ismerem ezt a mockjax-ot.
Így szoktam az ajaxot használni. [link]
Sk8erPeter:
Hol van, hogy pending? Hol nézed? Webfejlesztő panelban, vagy csak a UI-on?
A webfejlesztő panelban néztem, ott ír ennyit.Mit csinál az előző hsz.-edben írt ModalDialog()?
function ModalDialog(msg) {
$('<div />').html(msg).dialog({
modal: true,
buttons: {
Ok: function() {
$(this).dialog("close");
}
}
});
}Webfejlesztő eszközből derült ki, hogy "nem tudok egyszerre több ajax kérést intézni a szerver felé"? Hogyan vizsgálódtál?
Elindítottam több kérést a szerver felé ,az elsőnél a szerver oldalon beállítottam egy 1 perc sleep()-et, a többi csak egy sima echo volt. Addig nem jött válasz a többire, míg az első sleep()-es nem végzett. -
Sk8erPeter
nagyúr
Ezt csak most látom:
"Másrészt inline ev.handlerekkel csak egy handler-t tudsz definiálni egy eventhez"
Ez nem feltétlenül igaz, lásd ezt:
HTML:
<button id="mybutton" onclick="alert('Button has been clicked! --> UGLY inline stuff.');">Click this button</button>JS:
window.addEventListener('load', function () {
document.getElementById('mybutton').addEventListener('click', function () {
alert('Button has been clicked! --> Event handler in JS file - as you should ALWAYS do it.');
}, false);
});--> http://jsfiddle.net/4SeM5/
Mindkettő lefut, csak előbb az ocsmány inline-kód, majd a külön JS-kódban definiált fut le.
Abban az esetben viszont igaz, ha JS-kódban van mondjuk két külön window.onload = function(){...}, akkor az első felülbírálódik.
-
biker
nagyúr
Köszi, tanulmányozom.
Két ponton nem értelek azonban
Csak az első sort hagytam benne, mert csak azt volt türelmem kijavítani. Szinte csak hiba volt benne.
<input type="text" class="termek" size="12"/>
<input type="text" class="termekDarab" value="1" size="2"/>e_e -
<input type="text" class="termekKedvezmeny" value="0" size="2"/>%
<input type=text size=12 id=termek_ean_1 name=termek_1 onKeyPress="return disableEnterKey(event)"><input type=text size=2 name=termek_db_1 value=1 onKeyPress="return disableEnterKey(event)">e_e -<input type=text size=2 name=termek_kedv_1 value=0 onKeyPress="return disableEnterKey(event)">%
szóval kivetted a name elemet, és az enter hatástalanító részt (sokan képtelenek a vonalkód olvasót átállítani, hogy a sorozat végén tab-ot adjon) és ez a rengeteg hiba?Meg ezek a magyar nevek
..keverve angol nevekkel, fő a konzisztencia.
szerintem egységesen magyar, hol keveredik angollal?
-
Sk8erPeter
nagyúr
"A véleményem az, hogy azért látsz erről kevesebb infót, mert a PHP-t főleg szerver oldalon használják, vagy legalábbis ebben a kontextusban amiről beszélünk, a javascriptet pedig főleg kliens oldalon. Na most az olyan témakörök, mint Osztály, öröklődés leginkább az adatok/állapotok tárolásával hozhatóak összefüggésbe. Adott objektumokat írunk le egy osztállyal, és ezen onjektumokat akarjuk perzisztálni valamilyen módon. Adatokat pedig rendszerint adatbázisba mentünk, az pedig a szerver oldalra tartozik."
He?! Az objektumorientált programozási elveknek már miért a perzisztenciához lenne közvetlen köze?
Ez egy nagy baromság. Az OOP egyszerűen egy programozási módszertan, kódszervezési elv, ami közelíti a kódot valamelyest az ember objektumokban történő gondolkodásához... Önmagában abszolút semmi köze bárminek adatbázisban, fájlban vagy akármiben tárolásához...
Magyarul az érvelés/levezetés már eleve hibás. Hogy PHP-nál több objektumorientált kódot látott, annak az lehet az oka, hogy többet foglalkozott PHP-val, vagy nagyobb problémakörök kapcsán látott kódokat, nem pedig rövid példakódokat nézegetett, vagy fingom sincs. Nyilván csomó netes egyszerű sample code nem tartalmaz komplett objektumorientált kódot. Ha megnéz bármilyen tisztességesebb library-t, plugint, akármit, akkor láthatja, hogy az alapvetően objektumorientált kódszervezés alapján készült."Kliens oldalon nem szokás adatokat tárolni. Van rá lehetőség (indexedDB, localstorage stb..) de nem jellemző."
Hát pedig sűrűn előfordul, lásd bármilyen böngésző-extension JavaScript-kódját is."Szerintem már csak ezért sem találkozni olyan sűrűn a klasszikus értelemben vett osztály fogalmával kliens oldali javascriptben."
Na hát ennek meg aztán megint csak köze nincs az előző állításhoz (még ha az előző állítás helyes is lenne, bár nem az).Amúgy a hsz.-ed végén látható felsorolásodból azt kihagytad, hogy az is kell, hogy az ember tudja használni a keresőt, tudja értelmezni a dokumentációkat (mert akkor nem akad el hülyeségeken, és valóban nem kell ismernie rogyásig egy nyelv összes dolgát - bár nyilván a tapasztalat és az adott nyelv ismerete jót tehet a gyors+minőségi kódírásban).
-
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
-
Sk8erPeter
nagyúr
"De pont tőled 'kaptam meg' múltkor, hogy kezdőknek sokkal átláthatóbb az if-else, így ilyen helyzetben inkább írjunk egy hosszabb if-else-t, mert az beszédesebb mint a switch."
Hol állítottam én neked ilyet?"Na ilyen az amikor akasztják a hóhért, vagy porszem van a gépezetben?
"
Inkább ilyen, ha valaki félreérti, amit tanácsolnak neki. -
Polesz
addikt
Nekem nyugodtan tolhatod akár perl-ben is. Attól hogy valamit nem tudok "helyből" még el tudom olvasni a forráskódot. Egy nagyon bonyolult interpreter van a fejemben
Következő kérdés:
Csak úgy érintőlegesen kérdezném:
Töltök be egy oldalt ami elvégez egy csomó adatbázis műveletet ezért erre várni kell. Jó lenne ha a kezdetkor sikerülne egy forgó nem idegeskedj feliratot kirakni és amikor az oldal kész és betöltődik a táblázat akkor ez eltűnne. Láttam sok oldalon ilyet, egy gyors lökés kellene (akár a szakadékba is
) hogy hol kezdjek hozzá.
-
trisztan94
őstag
Na hát azt meg hogyan kell?
Egy ilyenem van:
switch (változó) {
case 2:
//lenyegtelen
break;
case 3:
//lenyegtelen
break;
case 13:
ide kell nekem a valtozo 5
break;
case 45:
var valtozo5 = valami
break
}Na most a 13ba hogy ágyazom bele a valtozo5-öt, ha az csak utána, a 45nél jön létre?
Szerk:
A kódomban akkor kap értéket, a switch előtt már létre van hozva. -
Speeedfire
félisten
Php-s feldolgozásra írtam a kívánt tömböt.
Dinamikusan szeretném feldolgozni a tömböt. A nyelvek között változó mennyiség lehet.Jelenleg így oldottam meg, de nem tudom van-e jobb megoldás.
var rel = $(this).closest("tr").attr("rel");
var post = '';
$(this).closest("tr").find('td textarea').each(function(i){
post = post + '&' + $.param($(this));
});
post = post + '&Message[id]='+rel;Más: Van valami jó jquery calendar, ami json fájlból kapott adatok helyez el a naptárban? Semmi eseményt nem szeretnék rákötni, csak megjeleníteni az adatokat.
Ezt néztem, de nem akar működni csak ősrégi jquery-vel. Még 1.7-essel sem.
-
martonx
veterán
-
martonx
veterán
Köszi az észrevételt!
Valójában az érdekelt, hogy meg lehet-e oldani tisztán css selectorral a dolgot (speedfire kérdéseit régóta ignorálom, de ez most kivételesen érdekes volt), és örültem neki, hogy sikerült. Ugye webről beszélünk, pont jquery topikban, ahol is állandó vesszőparipám, hogy ahol lehet, ott ne jquery-zzünk, meg js-ezzünk, hanem CSS-el kellene megoldani minél több funkciót, mert a böngészőkben az a leggyorsabb, leghatékonyabb.A css selector sajna ilyen randa, ez nem azon múlik, hogy tömörebben akartam-e megcsinálni, a tömörség abszolút nem volt célom.
Olyan ez, mintha egy szöveg feldolgozási feladatot megoldasz húsz sornyi if, meg string kivágás, meg mittudomén milyen műveletekkel, vagy pedig ráhúzol egy rohadt ronda, de brutálisan hatékony regex pattern-t és 1 sornyi kóddal megoldottad.
Vajon melyik megoldás a jobb? Az igazság persze mindig odaát van, örökérvényű általános igazságok nincsenekA nem mindig a legrövídebb megoldást egyébként többször is a változó és függvény nevekre értettük, azoknak a lespórolása tényleg felér egy öntökön szúrással, pláne ha két év múlva kell ránézned, hogy mit is akarhattál anno a kódban az a, meg b, meg izé nevű függvényekkel megoldani. Illetve arról, hogy ha valaki 10 sornyi kódot belenyomorít egy 1000 karakter hosszú programosorba, közben 10 pontosvesszővel lezárva az utasításokat.
-
Speeedfire
félisten
-
Sk8erPeter
nagyúr
Ez olyankor igaz, amikor valami felesleges kódbenyomorítás történik hencegésből (hogy ő még azt is képes kiolvasni, de aztán két hónap múlva megszopja
) vagy helyspórolásból, vagy más értelmetlen célból, aminek a karbantartása iszonyatos, de jelenleg az a helyzet, hogy szerintem martonx kódja is teljesen magáért beszél
meg működik, igazából tömörített leírása a korábbinak:
http://jsfiddle.net/bjxDL/7/
A selectorban már egyből benne van, mit akarunk egyből kizárni.
Persze az is tény, hogy konkrét megvalósítástól eltérhet, hogy biztos erre van-e szükség - például ha csak bizonyos esetekben, bizonyos egyéb feltételektől függően akarjuk, hogy az adott, kizárandó elemre más szabályok vonatkozzanak, nem általános érvényű a szabály; olyankor pedig a Te megoldásod a jó. Tehát mindkettő megoldásotok jó, feladatfüggő, melyiket érdemes használni, amennyiben általános szabályról van szó, én is inkább beraknám a mutatott módon a selectorba a kizáró feltételt, és akkor még felesleges if-else-ekkel sem növeljük a kódzajt. -
martonx
veterán
Nem próbáltam ki, de ezzel a selector-os trükkel nem pont ugyanazt lehet elérni?
$('#teszt > div:not(.neee)').on('click', function(e){
$(this).toggleClass('red');
});illetve a this helyett, lehet hogy e.target kell, most lusta vagyok kipróbálni, ráadásul melóhelyen érthetetlen módon le van tiltva minden CDN, így a jsfiddle is használhatatlan
-
Jim-Y
veterán
-
ahetaton
csendes tag
Mind a 2 használ jqueryt, a bannerslider meg a captcha is.
A captcha az imént feltöltöttet a slider ezt:
http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js?app=revolution_sliderPróbáltam ugyan arra irányítani őket, de a captcha csak a saját jquery.js-ével működik, de ha a sliderhez adom ezt a js-t akkor ugyan úgy akad.
Nem szeretném úgy finomítani, hogy csak az egyik hívódik meg, mert nekem mind a kettőre szükségem van.
Négy .js fájlt hív be a captcha amiből ha a jquery.js-t kiveszem (így természetesen nem működik a captcha), akkor a bannerslider működik. Ezért gondoltam, hogy valami van a jquery.js-el.Amit az interneten eddig találtam minden lehetőséget kipróbáltam, de vagy az egyik nem működik vagy a másik.Továbbá bonyolít a dolgokon, hogy CMS rendszerrel készítem az oldalt így még összetettebb a történet. :S
-
fordfairlane
veterán
Ezek szerint nem csinálja meg. Tipikus PHP-s viselkedés ez, hogy az utolsó elem látszik csak a paraméternél, és ezt ezzel a fajta névkonvenció követésével lehet orvosolni. Meg lehet nézni valami http kommunikációt monitorozó alkalmazással, hogy pontosan mit is küld a böngésző.
-
-=Flatline=-
tag
A feladat célja a felhasználók számára egyszerűbbé tenni a hotlinkelést siteon belül, lévén rengeteg adatfeltöltés zajlik és ezzel szignifikánsan sikerülne megkönnyíteni az adatbevitelt.
Értelemszerűen ez egy próba adatbázis, hogy ne 80ezer rekorddal kelljen dolgozni itt.
Tehát:
Adott egy editor felületen egy csóka, aki ír egy cikket mondjuk. Ott figyel egy autocomplete mezo állandóan X helyen neki, hogy segítse a munkáját. És hogy? Ír egy cikket épp a Traveler sorozathoz, ami az adatbázisban van, ráadásul épp az az aktív filmje, lévén azt szerkeszti, TEHÁT, ha keres bármire, akkor a filmhez kapcsolódo adatok között keres. Kiválasztja bögyös maca karakterét, akiről egész pofás leírást csinált már egy másik júzer, semmi dolga nincs, hogy belinkelhesse azt az oldalt, csak kattintani az autocomplete resultra, és már be is került a szövegbe, amit ír és nem kell linkekkel sem szerencsétlenkednie. Az adatbázisban azért van rengetegszer kétszer ugyanaz, mer tegyük fel, bögyös maca karakter van 45 filmben, TEHÁT külöbséget kell tenni köztük. Ha emberünk úgy dönt, hogy ő most olyat szeretne a szövegbe linkelni, ami NEM az adott filmhez tartozik az adatbázis szerint, tehát mondjuk Bögyösneknembögyösdeszexi ANitát, akkor átkattintja az autocomplete mező melletti kis gombját arra, hogy GLOBÁL search, nem local filmen belüli és láss csodát, feljön neki sok találat, de akkor már nem árt tudnia, hogy melyik filmhez tartozóra fog klikkelni és ezért van a másik. (Az totál jogos kérdés, hogy miért jobb nekem, ha két közepes méretű adatbázis lesz betöltve, nem pedig egy nagy, de vezéreljenek mondjuk magasztos átláthatósági szempontok
)
Így érthető remélem, hidd el, egy táblába nem tehetem az egészet, mert 78ezer rekordos már így is ami van és 15 mezőt tartalmaznak. Húzós dolgozni vele, ezt kell az upgradekor szétbontanom és, ha már itt tartunk, próbálnám egyszerűsíteni a júzer dolgát.
A kérdésedre pedig: Alapvetően dizájner vagyok és ugyan sokmindent megtanultam, ezt nem bíznám nem szakemberre, ezért is mondtam, hogy ADOK PÉNZT! ha megcsinálja valaki. Köszönöm, hogy ránéztél, örülök a válasznak!
-
Sk8erPeter
nagyúr
Ja, de félre ne értsd, nem téged blamállak, ezeket csak azért írom le, hogy legyen némi korrekció is.
Legalábbis én szeretem, ha kódomban lévő hibákat korrigálják, mert abból én is tanulok, meg másnak sem a rossz infó marad meg.
Amúgy sejtettem, hogy csak gyorsan összedobáltad, mondom, csak korrekció gyanánt írtam. -
Sk8erPeter
nagyúr
Oh, sorry, azt a részt már elfelejtettem megnézni.
Benéztem.
Az viszont akkor is hiba, hogy egyszer $_POST['action']-t használsz, máskor pedig $_GET['action']-t.
Na meg azt is ellenőrizni kell, hogy létezik-e egyáltalán az adott index. Gondolom tudod, de ha már szemléltető kód...
Szóval:
$action = isset($_POST['action']);
HELYETT pl.
$action = isset($_GET['action']) ? $_GET['action'] : NULL;innentől kezdve pedig csak az $action értékét vizsgálgatni (NULL-lal egyenlő-e, ha nem, akkor meg volt adva action, aztán jöhet akár egy switch-case is, vagy egyre komplexebb dolgok
-
szmegma
aktív tag
Nahh pont errol beszeltem a #2055-os posztomban, mivel trisztan94 felhozott egy otletet, amire en azt irtam, hogy:
"Ehhez a megoldashoz szerintem az egesz lapozot jQuery-ben kellene megirni, mivel jelenleg a lapozo PHP-s, es a script visszakuldott id-je alapjan azonositja a lap szamat."
Erre Sk8erPeter (#2058) azt irta, hogy: "Félreérted."
Szoval akkor megis csak nekem volt igazam.Amiben viszont nektek volt igazatok, hogy feleslegesen kuldtem olyan adatot el, amit nem kellett volna es utana pedig szuresre kenyszerultem, mivel tele volt minden szarral a visszatero adat.
Ezzel terhelve a szervert, a klienst es magam mivel nem is mukodott.
Ezt megtanultam, koszonom nektek! -
szmegma
aktív tag
Amugy az miért nem jó, ha magát a lapozót te állítod össze kliens oldalon js-el, úgy, hogy ajaxxal lekéred a php fájltól, hogy hány megjelenítendő oldalad van, azt javascriptben feldolgozod, és csak a tartalmat kéred le a szervertől lapozásra?
Egy szoval sem mondtam, hogy nem jo, ha eszembe jutott volna, akkor eleve ugy csinalom.Most megyek melozni, ha haza jovok megprobalom amit linkeltel megoldast atultetni. Koszi.
-
szmegma
aktív tag
<?
$max = 12;
if(isset($_POST['pg'])){
$num=$_POST['pg']-1;
$pg=$_POST['pg'];
}
else{
$num=0;
$pg=1;
}
$begin=$pg-1;
while($begin<1)
$begin++;
$end=$pg+1;
while($end>$max)
$end--;
for($j=1;$j<2;$j++){
echo'<tt id="lap.'.$j.'">'.$j.'</tt>';
}
if($pg>3){
echo'...';
}
for($i=$begin;$i<=$end;$i++){
if($i>1&&$i<($max)){
echo'<tt id="lap.'.$i.'">'.$i.'</tt>';
}
}
if($pg<($max-2)){
echo'...';
}
for($j=($max);$j<($max+1);$j++){
echo'<tt id="lap.'.$j.'">'.$j.'</tt>';
}
?> -
szmegma
aktív tag
Jim-Y -> Ott van a test link, azt szeretnem megoldani, hogy mukodjon. Megnezted a linket? Az elso kattintas erejeig mukodik, utana a lapozo inaktivva valik a kattintasra.
trisztan94 -> Szűrés nélkül, ha csak arra kérsz kérést amire ténylegesen szükséged van:
Elküldi a kérést PHP-nak, ami feldolgozza azt amit mondtál neki, visszaküldi a scriptnek azt a specifikus dolgot amit kértél, a script meg beülteti a html-be.
Ertem a PHP-t, de hiaba irok ra egy fuggvenyt, hogy csak a szukseges adatokat kuldje vissza, a lapozo reszt ugy is ujra kell tolteni, hogy valtozzon az uj adatoknak megfeleloen. Ahogy pedig mondtad, ha ujra toltom, pont attol valik inaktivva.Amúgy szerintem azért válik inaktívvá a lapoztatás mert azt is minden kérés után újra betöltöd, azt külön kéne rakni az ajaxtól és egy változót létrehozni php-ban, ami visszaküldi a scriptnek, hogy hanyadik oldal volt előbb nyitva, vagy valami ilyesmit és onnantól kezdve gyerekjáték.
Ehhez a megoldashoz szerintem az egesz lapozot jQuery-ben kellene megirni, mivel jelenleg a lapozo PHP-s, es a script visszakuldott id-je alapjan azonositja a lap szamat.Ettol fuggetlenul nem zarkozom el attol, amit irtal; lehet en nem latom a fatol az erdot es neked van igazad, hogy a PHP-s fuggvennyel csak azt kuldjem vissza, amit frissiteni akarok. Viszont meg mindig nem ertem, hogyan fog valtozni igy a lapozo elrendezese.
-
trisztan94
őstag
A $_POST[action] az csak egy változó, nem?
Igazából be kell vallanom jó ideje nem php-ztam, lehet hülyeséget írok, de egy változó hogy tud meghívni egy fuggvenyt? Azt a valtozot le kell kezelni egy elagazassal vagy valamivel, nem?
C#-ban tudsz ajaxbol class-t meghívni az ajax action-jevel. Tehát ha ajaxban ez van: action: valami, akkor az az asp.net valami nevű class-jere mutat.
De ha csak ezen az egy oldalon van neki ajax, akkor felesleges szerintem ez, mert egyfajta adatot ker, így nincs sok választási lehetoseg, hogy mit kell visszaadni.. -
Sk8erPeter
nagyúr
Szerintem nem feltétlenül szükséges hozzá jQuery, már ha egyáltalán jól értem a problémát, hogy megfelelő helyre kell betenni az adott scriptet, és ott lefuttatni...
.appendChild()-dal hozzáfűzhető plain JS-sel egy script tag...
Ilyesmi? --> http://jsfiddle.net/VJNMb/
-
trisztan94
őstag
Ha jól tudom az .append() az mindig az appendolt elem után rakja be a tartalmat, nem?
Tehát, ha itt a DIV-ed, amiből kicsúszik a dolog, gondolom így csinálod (pszeudokód):<div id="vmi"></div>
$('#vmi').append(tartalom);és akkor így jön vissza:
<div id="vmi"></div>
tartalomMiért nem csinálsz az üres divben egy divet pont erre a célra? Tehát így:
<div id="vmi">
<div id="tartalomhelye"></div>
</div>Így a tartalomhelye-re appendolod, így benne lesz a "vmi" divedben. Aztán az append után akár el is távolíthatod a "tartalomhelye" divet.
Tehát valahogy így:
$('#tartalomhelye').append(tartalom);
$('#tartalomhelye').remove();Lehet, hogy rosszul értelmeztem, ha igen, bocsi
-
trisztan94
őstag
Annyit kérdeznék még, hogy a kódodban úgy használod a tömböt a php-ban, hogy response[$i]["name"], mikor neked, ha jól láttam egy dimenziós tömböd van? Az a ["name"] az ott micsoda? Nekem az ASP.NET szintaktikája (c#) nem engedi, aláhúzza és exceptionnal kidob. Nem tudod véletlenül annak a szintaktikáját?
tehát ez hibás neki:
response[0]["name"] = valami;
illetve ez is, mátrixxal:
response[0,0]["name"] = valami;és ezt is, megint mátrixxal:
response[0,"name"] = valami;Írtam már ASP.NET hivatalos fórumba de nem érkezett még válasz
-
Sk8erPeter
nagyúr
Objektumegyenlőségek vizsgálatával kapcsolatban itt van egy topic:
http://stackoverflow.com/questions/1068834/object-comparison-in-javascriptHozzáteszem, az elfogadott válaszban iszonyat nagy gyökérség, hogy ennyiszer megy végig az objektumon. Már eleve azzal megduplázza a futási időt, hogy egyszer végigmegy rajta, megnézi, van-e undefined kulcs a másikban, aztán végigmegy még egyszer...
-
Sk8erPeter
nagyúr
"ha valami rossz kismanó átírná a kódját multiple selectre, akkor igen lefutna, egyébként meg nem"
Abban a formában is lefut, amit ő írt, úgyhogy ez nem igaz...Szerk. (mert megint írtál pluszt szerk. után):
jahh, az én célom nyilvánvalóan mindig csak a kötekedés, nem is ám az, hogy ne maradjanak kétes minőségű kódok a topicban javítás nélkül, ha visszakeresel a hsz.-eimre, nem segítettem ám senkinek, neked sem, nem válaszoltam ám a te kérdéseidre sem, veled is mindig CSAK kötekedtem, másból sem áll a tevékenységem...De nyilván most jól megmondtad a magadét, és szükséges volt általánosítani.
De akkor majd ignorálom a hsz.-eidet, és akkor nem lesz problémád.
Azt azért még hozzáteszem, hogy az én kezdeti fórumos tevékenységem során és most is mindig nagyon jól jöttek és jönnek az ilyen rendkívül szemét "kötekedő" hozzászólások, amikor valaki javította/javítja a hibáimat, én inkább örültem neki, ha valakivel ilyet meg tudtam vitatni, mintha hülyeségeket hagyott volna a fejemben. -
Sk8erPeter
nagyúr
Az ő kódja viszont működik mindkét esetre, a tiéd meg nem. Akkor melyik a jobb, ha úgy döntesz, hogy multiple lesz, akkor két helyen kell átírni, vagy csak egy helyen? De a te megközelítésed sem rossz, de úgy állítottad be a kódját, mintha valami óriási plusz terhet rakott volna rá a feladatra.
Szerk. (úgy látszik, mindig szerkeszteni kell, mert mindig utána is írsz valamit
):
De, pontosan értem, amiről beszélsz, de kicsit túlzottan kötekedősnek éreztem a hozzászólásodat trisztan94 kódjára, ezért mondtam el, hogy annyira nem rossz, amit csinált, még ha lehet is javítani rajta (például a szerinted "édesmindegy" azonos selectort, ami lényegében rossz megközelítés). -
Sk8erPeter
nagyúr
"itt a belső $('#select option:selected").each -nek semmi értelme, mert nem tud az ember többet kiválasztani csak egyet, így ez felesleges"
Már miért ne tudna többet kiválasztani?Pont te linkelted be a multiple attribútummal ellátott selectet...
De most gondold már végig: akkor itt ebben a kódodban miért használtad mégis az each-et, ha szerinted "felesleges"?A szerk. után írt kódod meg tulajdonképpen értelmetlen, mert ciklusszintaktikát használtál egy lépésre:
for(var i=0; i<1; ++i) -
Sk8erPeter
nagyúr
Szerintem nem "édesmindegy".
Egyébként most ez kicsit vicces, hogy azt írtad, hogy Trisztán kódja túl van misztifikálva, aztán lényegében ugyanazt csinálod, csak picit nehezebben olvasható szintaktikával...Pont ezt írtam itt szerk. után, hogy attól még, mert más volt az ő megközelítése, attól még nem volt túlmisztifikálva...
trisztan94 védelmében, ha már megjegyezted, hogy rosszul csinálja (pedig nem, csak azt csinálta rosszul, amit te is, hogy az adott selectoron belül ugyanazt a selectort felhasználta még egyszer), akkor már érdemes megvitatni. Meg amúgy sem kell magára vennie senkinek, ha javítanak a kódján vagy javasolnak alternatívát, ez a topic többek közt ilyenek kivesézésére is való, hogy mi lehet jó/jobb megoldás.
-
syC
addikt
function addNewSelect(){
$newSelect = $('<select>',{
'id': 'newSelectId'
});
$newSelect.append("<option selected='selected'> vállassz </option>");
for(var i=1; i<10; i++){
$newSelect.append("<option>"+i+"</option>");
}
$(document.body).append($newSelect);}
kb ez a kódom.
Köszönöm a gyors hsz-eket! A fenti kód által kapott select listára ha rákattintok és választok a 10 lehetőség közül, bármit választok, a kattintás után az első lehetőség kerül kiválasztásra ( mintha nem történne semmi ) . Erre irányult a kérdésem, hogy ez mitől lehet? Valami szintaktikai hiba?
-
Sk8erPeter
nagyúr
Ha már javítgatod: a második kódodban csinálsz egy ilyet:
$('#select').change(function (value,index) {
var res_array = $('#select').val();
...
});
Itt az újabb $('#select')-nek nincs sok értelme, akkor már $(this).val();Amúgy most végül is a lényeg szempontjából mindegy, hogy egy .each-csel bejárod az elemeket, vagy majd a te kódodban a res_array tömbön mész végig egy for ciklussal... szóval olyan nagyon nem misztifikálta túl.
-
Muton
addikt
köszönöm a segítségedet!
ne ölj kérlek bele több időt, mert az az én hibám leszSk8erPeter:
Félreérted, vagy rosszul fogalmaztam (mint ahogy szoktam)
Korábban datepickert csináltunk, amivel időpontot adunk meg.
Ez egy másik ügy, most időtartamot kell megadni, pl hogy egy folyamat 6 órig fog tartani. Elkezdi szépen beírni, hogy 6, és alatta egyből megjelenik, hogy 6 perc, 6 óra, stb, amire rá is tud kattintani.Illetve az meg Nektek is meg kellene érteni, hogy lehet, hogy Ti felülbírálhattok a munkahelyeteken dolgokat, nálunk ez nem így van. Ennyi. Lehet vitatkozni arról, hogy szerintetek így hülyeség valami, meg úgy, csak fölösleges, mert azt kell megcsinálni. Amúgy ezzel a felületi megvalósítással meg pont egyetértek.
-
Muton
addikt
a feladat, hogy a felhasználó meg tudjon becsülni valamit, szóval majd megpróbálok egy olyan szűrőféleséget csinálni, hogy az input mezőbe csak számokat fogadjon el, max 4-5 karaktert egymás után.
Meg elvileg ezt egyszer megbecsli a júzer, esetleg egyszer-egyszer módosítja, szóval nem lesz gyakori a használata, arra meg talán megfelelő lesz. köszi még egyszer
-
Sk8erPeter
nagyúr
Sztem az nem fasza, hogy ha begépelem, hogy "1 ór", akkor kiválaszthatom a listából azt, hogy "1 ór óra"
Mivel minden alkalommal a begépelt érték alapján összepakolod, hogy x+óra. Meg az sem fasza sztem, hogy minden keyup során inicializálod az autocomplete()-et. Túlzott erőforrásigény-szagot érzek. -
Jim-Y
veterán
Ez egy problémát már kiküszöböl: http://jsbin.com/icinaz/3/edit
-
Muton
addikt
igen, ez jónak tűnik, csak akkor ahogy írja az x-et, mindig újra kell generálni a dropdown optionokat az aktuális x-el. Köszönöm az ötletet, ez lesz az út!
martonx: mert ilyen dizájn készült, így kell megvalósítani. Arra én is gondoltam, hogy csak az óra, perc, stb megy dropdown-ba, de az elég szoc módon néz ki
-
Sk8erPeter
nagyúr
Ennek így indoklás nélkül főleg nincs értelme (ha nem is tudod megindokolni, akkor érdekesen jön ki egy olyan állítás, hogy szerinted ÉN tudom rosszul
), mert önmagában nem igaz, hogy "a ++i-t kéne megjegyezni". Nem, nem azt kell megjegyezni. Ez csakis attól függ, hogy épp mi a felhasználás módja. Ha neked az épp érintett résznél a MEGNÖVELT értékre van szükséged, és nem jó, hogy később növel, akkor indokolt a használata, egyébként abszolúte semmi előnye nincs. A for ciklusnál fejlécében pedig főleg semmivel nem lesz jobb a ciklusod attól, hogy ++i-t használsz i++ helyett.
Ez "a neten is ezt ajánlják" meg nem túl hiteles referencia.
-
Karma
félisten
Szemantikailag egy for ciklus léptetésénél nincs különbség a kettő között. Az "ideiglenes változó, ami létrejön a postincrement miatt" probléma meg C++-ban érdekes csak az operator overloading miatt. Gyakorlatban sincs különbség.. Másik teszt (egy ocsmány pink oldalon
)
-
Sk8erPeter
nagyúr
"a ++i az i++ ellenében nem hiba, csak előbbi használata javasolt"
Ez nem igaz. For ciklusnál teljesen jó az i++, tipikusan ezt szokták használni.Az sem igaz, hogy szintaktikailag helytelen lenne a
for (i=0; i<texts.length; i++)
sőt, ez így teljesen rendben van, ha az i-t korábban deklarálta var-ral. De ha nem, akkor a JavaScript ezt "megteszi" a háttérben, de persze az a normális megoldás, ha deklarálod. -
Lacces
őstag
és Karma, köszönöm, akkor majd megnézem a kódját. Igazság szerint a hibámra majd még várom a többiek válaszát
.
Még egy kérdés, egy select tartalmát, hogyan tudom lekérdezni? (lehet az is rossz nálam)
Egyébként itt jönne egy kérdésem mindenkinek. Gondolkoztam ezen a Jquery használaton, hogy ha egy weboldalt szeretnék minden fajta eszközön megjeleníteni ( mobil, ipad, pc ), akkor én észrevettem, hogy sajnos nem mindenhol működik a jquery.
Nekem ipadem nincs, de egyik haverom mutatta, hogy ha egy dropdown féle menüszerkezetet írtam meg jquery-vel, és az az ipad-jén nem műxik...
És van erről leírás, hogy a jquery mely eszközökre érhető el? Esetleg érdemes használni az új jquery mobil könyvtárat inkább? (ez amúgy pc-s böngészökön is jól működik?) -
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"?
-
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.
-
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.
-
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
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? -
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.
-
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). -
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?
-
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...
-
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. -
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();
}); -
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.
-
Sk8erPeter
nagyúr
Atyaúristen, Te miket csinálsz....
Őszintén szólva már meg sem próbáltam átlátni, mit is szeretnél, annyira nem tudok kiigazodni a kódodon, mit miért úgy csinálsz, ahogy.
martonx felvetése teljesen jogos volt, hogy AJAX-lekérésen belülre még .load()-ot rakni igen erős túlzás...var img = new String("img"+i);
img = new String("<img src='http://localhost/wimyn/images/"+data[i]['images']+"'/>");Ez micsoda, miért szívatod magad meg minket ilyenekkel?
Itt egy kissé egyszerűbb létrehozási mód:
http://jsfiddle.net/Sk8erPeter/Kgj8S/Innen a példakód:
$(document).ready(function() {
var img_index = 1;
$('#mybutton').click(function() {
var img = $('<img />').attr({
'id': 'myImage'+img_index,
'src': 'http://doc.jsfiddle.net/_downloads/jsfiddle-logo.png',
'alt': 'JSFiddle logo',
'title': 'JSFiddle logo',
'width': 250
}).appendTo('#container');
img_index++;
});
});Szerintem ez jóval átláthatóbb.
var newelem = "<tr><td>"+img+"</td><td>"+$().load("http://localhost/wimyn/html/"+data[i]['description'])+"</td></tr>";
A .load() függvényt ilyen módon használni szintén gányolás, egyszerűen nem ilyen módon szokás, meg ez ilyen formában nem is igazán átlátható.
Igazából eleve már azt sem értem, ide miért töltesz be már megint valamit AJAX-szal, miért nem eleve már ezzel az adattal együtt adod vissza szerveroldalról ezt a leírást - ez egészen biztos, hogy egyszerű átgondolatlanság eredménye.
A leírást nyugodtan belepakolhatnád a success által megkapott data-ba. Tehát a válasz egy JSON-objektum lenne (PHP-vel ezt adnád vissza), amit úgy hozol létre, hogy PHP-oldalon asszociatív tömböt kreálsz, belepakolod a megfelelő indexek helyére a megfelelő értékeket, majd ezt a tömböt json_encode()-dal átalakítod, ez lesz a visszaadott érték. Persze ebbe bele kellene pakolni a status-t és minden egyéb fontosat, ami csak kell.
Ezek alapján meg kliensoldalon összeállítod a kívánt megjelenésnek megfelelő tartalmat.
De erre már számtalan példát mutattam a PHP topicban, amit Te is látogatsz.A .load() függvény használatának egyébként úgy van értelme, ha úgy használod, ahogy a példakódban is van:
$('#result').load('ajax/test.html');
De .ajax()-on belüli .load() tuti, hogy nem a megfelelő módszer. -
martonx
veterán
ezzel mi a probléma? Azon kívül, hogy ronda, és template-et illene használni.
Mondjuk én egy ideje MVC design patternt használok, ott ezt egy partialview-val oldanám meg.
Ha mindenképpen egy lapon belül akarnék sok dom elemet ide-oda beszúrogatni ajax-al, akkor meg knockout.js-t használnék.
Példa kódokat lusta vagyok írni.
Hopp, lehet megértettem a problémád. Te adatbázisban a test.html file nevét tárolod le, nem pedig a test.html tartalmát. De miért szivatod magad ilyenekkel? A helyedben azon is elgondolkoznék, hogy a képet is cakk-pakk letárolnám SQL-ben.
Ha a test.html tartalmát tárolod le, semeddig nem tart azt ajax-al kiküldeni a kliensnek, a kép nevével együtt, ahol beilleszted őket a megfelelő helyre, és már kész is.
Új hozzászólás Aktív témák
Hirdetés
- Intel Core i7 6700K / GTX 1660TI / 16GB DDR4 RAM / 500 GB SSD konfig eladó
- Samsung Galaxy S23 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Megkímélt állapotú Xbox Series X 1TB eladó. Kitisztítva és újrapasztázva!
- Gamer PC - i5 13400F, GTX 1080ti és 16gb DDR5
- Bomba ár! Dell Precision M4600 - i7-QM I 8GB I 500GB I Nvidia I HDMI I 15,6" FHD I W10 I Gari!
- AKCIÓ! ASUS Z97-A Z97 chipset alaplap garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone Ryzen 5 9600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- ÁRCSÖKKENTÉS TP-Link Archer C1200 Router eladó (1200 Mb/s Wi-Fi)
- 136 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest