- Windows 11
- Call center-forradalom: AI alakítja át az ideges telefonálók hangját
- Milyen routert?
- ASUS routerek
- HBO Max & OD topic
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Sarokba szorította a Huawei az Apple-t Kínában
- Kínos ügy lett az OpenAI Scarlett Johansson-botránya
- Folyamatosan hazudott a bitcoin állítólagos feltalálója
- Bittorrent topik
Új hozzászólás Aktív témák
-
-
Jim-Y
veterán
-
martonx
veterán
válasz Speeedfire #2103 üzenetére
Az ajax success metódusába tedd bele a tooltip beállítást.
Én kérek elnézést!
-
Jim-Y
veterán
válasz Speeedfire #2103 üzenetére
mint ahogy martonx is írta, a korábbi kódomban pont ez szerepel [link]. A page classú tagek ajaxxal lettek hozzáadva, és azokra még egy .on lett aggatva, de ennek az ajaxon belül kell lennie. Csak ebben a kódban ki lett delegálva a törzs egy függvénybe Amikor írtam a kódot én is kipróbáltam függvényen kívül, de úgy nem történt semmi.
[ Szerkesztve ]
-
Speeedfire
nagyúr
válasz martonx #2105 üzenetére
Az a baj, hogy az oldal elég komplex. Rengeteg ajax kérés fut, a felét a yii intézi el nekem. Pont emiatt akartam inkább a change-re tenni és nem a success részbe. Lényegében szinte minden össze van kötve mindennel. Elég interaktív felület.
Máshogy akkor nem lehet megoldani, csak a success-nél?Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
szmegma
aktív tag
válasz Sk8erPeter #2104 üzenetére
Tenyleg! Koszi.
Honapokkal ezelott futottam mar ossze ezzel a return false izevel csak lusta voltam akkor megkerdezni, hogy honnan tudom mikor es hol kell hasznalni?
+ egy bonus kerdes: Amit most ossze hoztunk kodot a test oldalon, az ugyebar ket fajlban van (test3.php es func.php). Kerdesem, hogy megoldhato, hogy egy fajlban legyen az egesz?
TV: JZ1000
-
trisztan94
őstag
válasz szmegma #2108 üzenetére
A return false annyit csinál, hogy az alapértelmezett eseményt nem engedi lefutni.
Tehát egy linknél az alapértelmezett esemény az, hogy átirányít a href attribútumban található útvonalra.
Tehát ha te egy linkre eseménykezelést használsz, tegyük fel egy ajax kérés miatt, akkor ugye nem akarjuk, hogy betöltse azt a lapot amit js nélkül betöltene, hanem kiszedjük belőle az infót és majd ajax-szal elintézzük.. Ilyenkor használjuk a return:false-ot.A return true meg pont ennek ellentéte
Mondjuk valami tulajdonság szerint engedjük a lefutást, pl egy formnál. Ha ki van töltve minden akkor return true (bár mondjuk ez az alapértelmezett, de én szeretem kiírni), különben return false (mert ott a submit gomb alapértelmezett eseménye a form elküldése)Szerk:
Nem láttam a php fájlokat, de egybe lehet rakni, csak az útvonalakat módosítsd, esetleg rakd külön class-be (vagy function-be) és ajax-szal azt a function-t vagy class-t hívod meg.[ Szerkesztve ]
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #2109 üzenetére
Itt volt erről szó, ott linkeltem egy témában releváns topicot:
http://prohardver.hu/tema/javascript_topic/hsz_3365-3369.htmlNémi pontosítás az általad írtakhoz:
"A return false annyit csinál, hogy az alapértelmezett eseményt nem engedi lefutni."
Pontosítva: jQuery-ben az eseménykezelőkbe tett return false; ekvivalens az event.preventDefault() ÉS event.stopPropagation() hívásokkal. Tehát a böngésző alapértelmezett műveletének végrehajtását akadályozzuk meg ezzel, ÉS megakadályozzuk az esemény buborékként való felúszását a DOM-fában, megakadályozva egyúttal azt, hogy a szülők eseménykezelői értesítve legyenek az eseményről.
Stimmel, amit írtál, csak ezzel a kiegészítéssel lesz teljesen igaz."Ha ki van töltve minden akkor return true (bár mondjuk ez az alapértelmezett, de én szeretem kiírni)"
Ez mondjuk így ebben a formában nem teljesen helytálló, mert nincs "alapértelmezett return true", hanem mivel nem tértünk vissza false-szal az eseménykezelőből (vagy hívtunk event.preventDefault()-ot és event.stopPropagation()-t), ezért engedjük, hogy a böngésző alapértelmezett művelete lefusson (ami - ebben már teljesen igazad volt - a form elküldése).Alapvetően jókat írtál, csak pici korrekcióra szorult, hogy teljes legyen a kép, hátha hasznos valakinek.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #2107 üzenetére
Esetleg megpróbálhatod az .ajaxSuccess()-szel globálisan lekezelni az eseményt, úgy, hogy itt inicializálod a tooltipet, esetleg némi késleltetéssel, ha szükséges.
Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #2110 üzenetére
Köszi a pontosítást!
Próbáltam úgy leírni, hogy paraszt Pista bácsi is megértse, ha egy weblapot akar írni.
Azt nem is tudtam, hogy az event.* dolgokkal ekvivalens a return false, szóval ismét tanultam valamithttps://heureka-kreativ.hu
-
szmegma
aktív tag
válasz trisztan94 #2109 üzenetére
Ertem, koszi szepen a leirast.
Az egybe pakolasnak majd neki latok a heten.TV: JZ1000
-
szmegma
aktív tag
Lenne itt egy ujabb kerdesem, ami most merult fel, miota az uj json return datat hasznalom.
$("body").on("change","input[name=opcio]",function() {
alert($(this).val());
});Ennek a kodnak az elso sora ugy kellene kineznie az altalatok tanitottak szerint, hogy
$("#inputs").on("change","input[name=opcio]",function() {
...Ez rendben mukodik is az oldalra lepes utan, am miutan a gombra kattintok, ami meghivja a $("button").on("click","button",function(){ reszt, a $("#inputs").on("change","input[name=opcio]",function() { kod mar nem mukodik, viszont ha lecserelem az #inputs selectort body-ra, akkor a gombra kattintas utan tortent oldalbetoltes utan is mukodik a .change() fuggveny.
Kerdesem, hogy miert? Arra tapogatozom, hogy ezzel a json-os cuccal ugyebar nem toltodik ujra az egesz oldal, igy a <script></script> kozotti resz sem es ez kavarhatja meg, de mint tanitottatok az .on() fuggveny pont erre van kitalalva nem?
Koszonom.
TV: JZ1000
-
szmegma
aktív tag
Bocsi, ha hazajottem melobol osszedobok egy tesztet.
TV: JZ1000
-
Speeedfire
nagyúr
Full ajax oldalt, hogy lehet rendesen "jqueryzni"?
Mindig a body-t figyeljem az on()-nal? Vagy hogy kell ezt rendesen megvalósítani?
Pl ajax-al betöltök valamit, valahova majd amit betöltöttem ott is akarok csinálni extra dolgokat jquery-vel, meg más jquery extrension-nel.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Coyot
őstag
válasz Speeedfire #2118 üzenetére
Knockout.js? Az egy marha jó kis cucc, kezdem megszeretni nagyon
Má' nem
-
martonx
veterán
válasz Speeedfire #2120 üzenetére
A kettő marhára nem zárja ki egymást, sőt.
Full ajax oldalnál a legbiztosabb, ha minden .on-t a document-re kötsz.
Másik megközelítés, hogy minden ajax hívás success-ében hozod létre az oda való esemény kezelőket. De ez szvsz egy idő után átláthatatlanná teszi az oldalt.
A full ajax oldalt egyébként single page appilcation-nek hívják. Ha így keresel rá gugliban akkor sok hasznos infót, design patternt lehet hozzájuk találni.Én kérek elnézést!
-
szmegma
aktív tag
trisztan94 es Sk8erPeter
Semmi, mar mukodik en neztem be az egyik reszt.TV: JZ1000
-
Speeedfire
nagyúr
válasz martonx #2121 üzenetére
Nem is mondtam, hogy kizárja.
Csak annyit írtam, hogy nem ismerem még annyira a knockout-ot. Elkezdtem vele ismerkedni, de csak lassan haladok vele, ahogy az időm engedni.
Amit tudok on()-ra rakom, de mindent így sem tudok vele "monitorozni".Más: Adott 1 vagy több form. Ha valaki módosítja és el akar menni máshova akkor dob egy figyelmeztetést.
Viszont ajax-ra ilyen bind unbind funkciót hogy lehetne írni?
Pl figyelni szeretném ha valaki a #valami a elemre kattint és ellenőrizze le akkor is a form-ot, hogy módosult-e vagy sem. Esetleg ha van kifejezettem erre a célra plugin, akkor mégjobb.var catcher = function() {
var changed = false;
$('form').each(function() {
if ($(this).data('initialForm') != $(this).serialize()) {
changed = true;
$(this).addClass('changed');
} else {
$(this).removeClass('changed');
}
});
if (changed) {
return 'One or more forms have changed!';
}
};
$(function() {
$('form').each(function() {
$(this).data('initialForm', $(this).serialize());
}).submit(function(e) {
var formEl = this;
var changed = false;
$('form').each(function() {
if (this != formEl && $(this).data('initialForm') != $(this).serialize()) {
changed = true;
$(this).addClass('changed');
} else {
$(this).removeClass('changed');
}
});
if (changed && !confirm('Another form has been changed. Continue with submission?')) {
e.preventDefault();
} else {
$(window).unbind('beforeunload', catcher);
}
});
$(window).bind('beforeunload', catcher);
});Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
-=Flatline=-
tag
Sziasztok!
Van egy viszonylag komplex (guruknak tuti nem az) autocomplete kérdésem. Stackoverflow-n fentvan, feltételezem aki vágja a jqueryt, az tud annyira angolul, hogy megértse.
Az SQL két táblám dumpja ottvan a topicban.
Kérek szépen valakit, hogy nézzen rá, annyira nem bonyolult szerintem, de én nem tudom megcsinálni, mert nem vagyok ninja. Pénzt is szívesen adok, paypal, bármi.
Köszönöm,
Flat
link: ITT VAN
(azért egy gyors magyar leírás)
Először csak az autocompletedb táblát próbáljátok megérteni, szimpla cucc, vannak benne helyszínek, karakterek, stb, mind csoportokhoz kötve, amik filmek. Egy $_SESSION['grp'] érték adja meg, hogy épp mi az aktív filmcsoport. (A második tábla akkor kell, mikor NINCS session driven kiválasztott csoport majd..erről később)
Egy olyan autocomplete kérést szeretnék, ahol a session grp mezőket érinti csak a query nyilván, azaz, ha elkezdi beírni az arc, hogy 'cha' akkor feldob két karaktert, mert kettő tartozik az 1-es grp alá. Ha kiválasztja az egyiket, az adat, ami visszajön extendelve kell legyen, mert linket szeretnék visszakapni a search mezőmbe. (<a href="LINKDATA DB MEZO">CharacterA</a> --> ezt, ha CharacterA-ra bokott a user. Ez a konnyebb resz
A nehezebb az az, mikor nem tudjuk, hogy miben keres a user, tehat globalis az egesz adatbazisra nezve.
Megint elkezdi beirni, hogy 'cha', feljon 4 result, CharacterA, CharacterA, es CharacterB, CharacterB. Igen am, de a 'sample-iddata' azert van, hogy azt valahogy belejoinolva, a visszjaovo result ugy nezzen ki, hogy mellette van, hogy melyik film karaktereirol van szo, azaz ket Traveler es ket Star Wars result lesz.
Tehat, ezt szeretnem, hogy erre tudjon kattintani a user: CharacterA - Traveler
A visszakapott ertek ugyanaz, mint az elso peldaban, azaz linket szeretnek, szinten 'linkdata' cellabol, csak ezuttal nyilvan igy: <a href="LINKDATA DB MEZO">CharacterA - Traveler</a>
Koszonom Sok fagyi?
[ Szerkesztve ]
Calm Sea Doesn't Breed Skilled Sailors
-
martonx
veterán
válasz -=Flatline=- #2124 üzenetére
Ez igazán nem tűnik vészesnek. Viszont marhára nem érek rá megcsinálni neked
Ha nagyon nem menne, vagy nagyon nem találnál senkit, akkor esetleg keress meg, legrosszabb esetben tudok javasolni mást magam helyett.Én kérek elnézést!
-
Jim-Y
veterán
válasz -=Flatline=- #2124 üzenetére
Én már magát a feladatot nem értem, lehet én nem vagyok így este elég türelmes, de nem sikerült leszűrnöm, hogy tulajdonképpen hol is akadtál el az autocomplete-ban.
Egy adatbázisban kereső autocomplete példa úgy néz ki, hogy:
- van egy input text meződ, a felhasználó elkezd írni valamit, mondjuk 'cha', itt lekezeled, hogy hány karakter után, vagy milyen esemény hatására történjen keresés az adatbázisban, mondjuk 3 karater után keresel, tehát ha beírta a user, hogy cha akkor lesz egy ajaxod, ami az adatbázisban keres. Hogy egy táblában, vagy többen azt te döntöd el, és te írod meg.
- lesz ugye egy ajaxod, ami visszadja a query eredményét, az esetedben mondjuk egy tömböt négy értékkel CharacterA, CharacterA, CharacterB, CharacterB (meg kell jegyeznem, már az sem tiszta, hogy itt miért szerepel 2x minden?!megvan, de én ezt alapból szűrném már szerveroldalon)
- megvan a keresés eredménye, az inputmeződre rákötöd az autocomplete bővítményt, és megadod neki resource-nak a fenti tömböt.
- meg mondjuk van egy gombod, ami miután behelyettesítetted az input fieldbe, hogy mondjuk CharacterA, indít egy újabb ajax kérést, de már ezt a 'CharacterA'-t küldöd a szervernek.Látszik, hogy elég sok helyen dolgozhatsz az adattal, először amikor kiszeded az input mező értékét, majd mielőtt az első ajaxnál elküldöd, hogy 'cha' a szervernek, majd az erre érkező választ is szerkesztheted ahogy akarod stb...
Melyik lépésben akadtál el?
[ Szerkesztve ]
-
-=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!
[ Szerkesztve ]
Calm Sea Doesn't Breed Skilled Sailors
-
Jim-Y
veterán
válasz -=Flatline=- #2128 üzenetére
Csak szerinted sok az a 78K, én melóban örülök ha ilyennel kell dolgoznom, mert azon értelmes időben lefutnak a query-k Nekem a 70millió soros táblával volt bajom
Na, így már jobban értem a problémát. Nos, én először valamilyen formában eltárolnám még kliens oldalon, hogy melyik filmet szerkeszti, majd a leendő query-be ezt feltételnek írnám (nyílván ha úgy áll a kapcsoló). Tegyük fel BögyösMaca karakterére keresne a cikk közben, elkezdi gépelni, hogy 'Bögy' majd megáll
-3 karakter megvolt, vársz 2 másodpercet, hogy folytatja-e a gépelést, ha nem, akkor mehet az ajax, mégpedig úgy, hogy az ajax data mezőjében elküldöd a Bögy stringet, és, hogy épp mi az aktív film, pl:$.ajax({
..
data: {
phrase: "Bögy",
active: "Titanic",
amikellmég: "azmegyide"
}
..
});Ezt szerveroldalon feldolgozod, és csinálsz belőle egy hozzá passzoló query-t
SELECT * FROM Filmek WHERE title = 'Titanic' AND (szereplő LIKE ' %Bögy%' OR másikszereplo LIKE '%Bögy%' stb...);Visszakapsz x sort mondjuk, azt feldolgozod szerveroldalon encodolod json-be, és visszaküldöd a kliensnek.
Kliensoldalon egyrész listázod autocomplettel a találatokat valamilyen emészthető formában, hogy az író ki tudja választani, hogy melyik érdekli, melyiket akarja beszúrni, majd megnyomja a gombot.Ekkor te visszakeresed az ajax eredménytömbjében ugyanazt az elemet, csinálsz belőle egy linket és beszúrod a kívánt helyre.
Ne haragudj, hogy nem írok konkrét dolgokat, de még mindig nem látom, hogy hol akadtál el a dologban
[ Szerkesztve ]
-
martonx
veterán
-
Sk8erPeter
nagyúr
válasz -=Flatline=- #2128 üzenetére
"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 "
Rossz megközelítés. Neked nem kell olvasgatnod az adatbázist, ne azt akard átlátni, legfeljebb a struktúráját alakítsd ki értelemszerűen. Jó esetben nem közvetlenül az adatbázisban fogsz kotorászni, hanem készítesz egy megfelelő UI-t arra, hogy szűrni lehessen az adatbázisban tárolt adatokra. Az tök más kérdés, hogy kezelhető legyen, az adatok megfelelően legyenek normalizálva, legyenek szétbontva logikusan a táblák, majd a lekérdezéskor legyenek jól összekapcsolva. A 78 ezer mező meg aztán végképp nem érv, hogy szétbontsd, az a mennyiség jól indexelt táblák és normálisan megírt lekérdezések esetén tényleg semmi egy mai átlagos adatbázismotornak, másodpercnek pici törtrésze alatt lehet ennyi adat közt keresni."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."
Hogy a júzernek mennyire van egyszerűsítve a dolga, ahhoz aztán abszolúte SEMMI köze annak, hogy az adattáblákba mennyi rekord van feltöltve, és a háttérben lévő adatbázis+táblák milyen struktúrájúak. Attól még lehet nagyon felhasználóbarát egy felület, hogy a háttérben lévő adatbázisszerkezet egy fostalicska, és fordítva is igaz lehet, ha rosszul csinálják.
A 15 mezőn mondjuk érdemes lehet elgondolkodni, kell-e, hogy mindegyik azonos táblában legyen, vagy érdemes inkább szétbontani, majd lekérdezéskor összekapcsolni (normalizálás).Egyébként ha ilyen bonyolultan fogalmazod meg a kérdést, akkor elmehet sokaknak a kedve, stackoverflow-n sem sokan tolongtak, pedig azért ott szoktak lenni válaszok, szerintem a "Complex autocomplete query" sem túl jó címválasztás, nem érzem igazán komplexnek a feladatodat (bár így fél 3-kor nem sokat fogtam fel belőle, mert annyira cifráztad, különösebben nem is gondolkoztam rajta), mégis elrettentő lehet a cím; valamint egy szemléltető ábra, a form megmutatása, valami tök egyértelmű rávezetés olykor többet mond minden szónál.
[ Szerkesztve ]
Sk8erPeter
-
-=Flatline=-
tag
válasz Sk8erPeter #2132 üzenetére
Igazatok van, a két táblának ebben az esetben semmi értelme. Jó éjszakát közben, még jó, hogy egy órával korábban van itt
Calm Sea Doesn't Breed Skilled Sailors
-
-=Flatline=-
tag
válasz -=Flatline=- #2133 üzenetére
Addig baszogattatok (jó értelemben), míg inkább megcsináltam. Nem teljes még és nem a legelegánsabb, de megy Már csak az a kérdés, hogy tudom priorizálni azt, hogy mindig az aktuális session grp legyen a kiemelt ORDER BY és csak utána legyen a normál group szerinti rendezés? (Ergó az épp szerkesztendő anyag találatai kapjanak prioritást, utána jöhet a minden egyéb...) Plusz ugye itt még sehol sem a LINKDATA linkké formázott módon kerül vissza az adat, abban tuti kell majd a segítségetek, ha felébredtetek. Köszönöm
mysql_connect ($db_host, $db_user, $db_pass) or die ('Could not connect to the database.');
mysql_selectdb ($db_database) or die ('Could not select database.');
$_SESSION['grp']=1; //teszt erejeig
$q = $_GET['term'];
if($q=="") return;
$lolz = array();$query = "SELECT * FROM autocompletedb WHERE (`location` LIKE '{$q}%' OR `character` LIKE '{$q}%' OR `item` LIKE '{$q}%' OR `music` LIKE '{$q}%') && `group` = '{$_SESSION['grp']}' ORDER BY 'group' LIMIT 30";
$resultset = mysql_query($query);
$lolz = array();while( $row = mysql_fetch_assoc($resultset) ) {
if($row['location'] == ""){}else{
$lolz[] = $row['location'] . " - " . $row['groupname'];}if($row['character'] == ""){}else{
$lolz[] = $row['character'] . " - " . $row['groupname'];}if($row['item'] == ""){}else{
$lolz[] = $row['item'] . " - " . $row['groupname'];}if($row['music'] == ""){}else{
$lolz[] = $row['music'] . " - " . $row['groupname'];}}
echo json_encode($lolz);
?>[ Szerkesztve ]
Calm Sea Doesn't Breed Skilled Sailors
-
Sk8erPeter
nagyúr
válasz -=Flatline=- #2134 üzenetére
Uhh, hát ez nagyon csúnya. Egyrészt randa spagettikód, másrészt a rendkívül elavult mysql_* függvényeket használod benne PHP-ben (hivatalosan is deprecated végre, helyette pl. MySQLi-t vagy PDO-t kell használni), harmadrészt az SQL Injectionre és más aljasságok lehetővé tételére mutattál be iskolapéldát.
(Mondjuk session_start()-ot sem látok, de feltételezem, nem a teljes kódot mutattad meg.)$q = $_GET['term'];
if($q=="") return;
honnan akarsz visszatérni? Ezt itt nem egy függvénybe raktad - vagy a kódodban mindez egy függvényben szerepel? Egyébként meg kapsz az arcodba szépen egy PHP notice-t, ha a $_GET['term'] egyáltalán nincs beállítva, szóval annak meglétét ellenőrizni kellene.
A query-t meg prepared statementtel kellene lefuttatni (pl. itt van rá példa: http://www.php.net/manual/en/pdostatement.bindparam.php, LIKE használatánál picit csúfabb, de akkor is jobb: [link], [link], [link], ), de legalábbis ha ragaszkodsz a gagyi, elavult megoldáshoz, akkor escape-elni kellene.if($row['location'] == ""){}else{ ... }
ez is meglehetősen érdekesen néz ki...Ha kódot másolsz be, akkor azután jelöld ki, és kattints a "Programkód" gombra, azért van!
Sk8erPeter
-
-=Flatline=-
tag
válasz Sk8erPeter #2135 üzenetére
Persze, nyilvan escapelek, es nem a teljes latszott. Majd mindjárt provideolok egy cleanebb megoldást, csak reggeli
Calm Sea Doesn't Breed Skilled Sailors
-
Lacces
őstag
Hali
Az alábbi kódnál mit nézhetek be? Ugyanis az van, hogy Interval-t alkalmazzok, mert az egyik input hidden mező változik. Van amikor nincs jelen, mint most első körben ezért undefinied-del jön elő. És kiválasztok egymásik szakmát, és hopp, már ott is van a html kódban az érték, de az interval-ás után, mégsem veszi elő az újnak az értékét, hanem a régiét nyomatja!!! Pedig a példát is néztem, és mégsem jó
function survey(selector) {
var input = $(selector);
var oldvalue = input.val();
setInterval(function(){
alert("Új: "+input.val()+ " --- Régi: "+oldvalue);
if (input.val()!=oldvalue){
oldvalue = input.val();
alert("OK");
}
}, 5000);
}
survey('input[name="szakma[]"]');Válaszokat előre köszönöm!
-
Karma
félisten
Egyszerű: az eredeti formában egyszer kiértékelődőtt a $(selector), és onnantól kezdve a belső függvény mindig ezt a konkrét értéket használta fel.
Mondjuk nem egészen világos, hogy a kódod mit csinál. Ha egy mező értékét másolod egy másikba, miért nem a change eseményt használod?
A setInterval esetén egyébként is célszerű eltenni a visszatérési értéket, hogy a clearInterval segítségével megállíthasd az időzítőt. Különben minden survey híváskor újabb timer kezd tekerni...
[ Szerkesztve ]
“All nothings are not equal.”
-
Lacces
őstag
Azért kell a tekerés, mert lehetőség-e van a felhasználónak többször is azt a mezőt modósítani. Ajax hívás eredményét kérdezi le. És ugye nem csak egyszer kereshet, hanem többször is, és emiatt lehet még egy másik... Max 3-4-szer keres a felhasználó.
A change esemény pedig ha jól tudom csak egyszer értékelődik ki. Meg ugye ahogy mondtam a HTML tartalom jön vissza Ajaxból. És van amikor nem, ezért a setInterval...
Persze lehetne mondani, hogy miért nem minden keresésnél... azért mert ezt a függvényt máshol is használja a webes alkalmazás... és így abba a keresőfüggvényben nem akarok "rondítani".
-
Lacces
őstag
Na másik... én már nem látom, nem veszem észre a problémát
$.ajax
....
success: function (data) {
alert(data);
if(data =='update'){
alert(message);
}
}
Az első alert eredménye az update! ki is írja. De a második sehogy sem fut le! És nem értem, miért nem megy bele az IF-be.
PHP kód:
print "update";Karma: köszi az előzőt
-
Jim-Y
veterán
szerintem máshol van a probléma, nem ebben.
Kipróbáltam:$(document).ready(function(){
$.ajax({
type: "POST",
dataType: "html",
url: "test.php",
success: function(response){
alert(response);
if(response === 'update'){
alert('valami');
}
}
});
});<?php
echo "update";
?>Nekem mindkét alertet kihozta. Esetleg mutass több kódot
-
Sk8erPeter
nagyúr
És honnan a t×kömből jön ez a "message" változó, amit ki kéne írnia?
PHP kód:
print "update";
Hát ez ebben a formában még nem PHP-kód... De ezzel kapcsolatban lásd Jim-Y hsz.-ét (#2144)... nem ártana egy <?php sem...(#2143) Lacces :
"amin meglepődtem... a .php-nál nem a print-et kellett használni, hanem az echo utasítást! És akkor működött...
(Olyan, mintha a print-tel valami "szeny" is ájtött volna)."
Jaj ne beszélj már butaságokat...
Ezek a lényeges különbségek az echo és print között:
http://stackoverflow.com/questions/234241/how-are-echo-and-print-different-in-php
Egyébként abból a szempontból, amit írtál, kábé semmi... Szóval 10000000%, hogy valamit benézel.kódodból:
success: function (data) {
alert(data);
if(data =='update'){
}
......
}na az ilyeneket érdemes elkerülni. Már volt szó róla a topicban, hogy a szerveroldalról érdemes inkább beszédes információkat visszaadni JSON-ben, és akkor még van esély arra is, hogy értelmesen feldolgozható infókat kapsz.
Itt a hsz. végefelé elég részletesen leírtam az egyszerűsített példa keretében, hogyan is gondolom:http://prohardver.hu/tema/jquery_kerdesek/hsz_2058-2058.html
====
(#2145) Lacces
"Az Interval-on kívül mivel lehet még elérni, hogy ha megjelenik egy <html> tag (ajax után legenerálodik az oldalon) akkor induljon el a függvény?"
<html> tag miért jelenik meg, miért "generálódik le az oldalon"? A kérdés enyhén szólva pongyolán lett megfogalmazva.Sk8erPeter
-
fordfairlane
veterán
válasz Sk8erPeter #2146 üzenetére
A kérdés enyhén szólva pongyolán lett megfogalmazva.
Az egész totál zavaros, a print-echo-val, a setIntervallal, az alertekkel, mindennel együtt. Leginkább az nem derült ki, hogy pontosan mire is kell ez az egész, elveszik az implementációs részletekben.
[ Szerkesztve ]
x gon' give it to ya
-
Sk8erPeter
nagyúr
-
Karma
félisten
Nem mondtad, hogy a felhasználó szövegdobozba írásáról van szó (ilyenkor tényleg csak egy change jön, fókuszvesztésnél, nem véletlen kell keyup eseményt használni), vagy selectről (amikor meg minden váltás change-et okoz).
Mint látod a zárójeles résznél, még nem győztél meg hogy tényleg időzítő kell...
“All nothings are not equal.”
-
spammer
veterán
Van egy php oldalam, ami listáz fájlokat. Van egy select lista, amivel lehet "szűrni". jQuery + Ajax megoldással hogyan tudnám POST-olni a formot? Azért kellene, hogy F5-re ne rinyáljon a böngésző, hogy újra elküldi az adatokat blablabla... Egy oldalon belül van az egész kód, nincs külön process.php vagy akármi. Működik a form most is, csak gondoltam ha megoldható, akkor ajaxos betöltéssel jobb lenne, hogy ne frissítse az oldalt.
Gugliztam, de 1., nem értek hozzá, 2. komplett login form meg hasonló dolgokra találtam példát és általában külön volt a php meg html form. Variáltam mindenfélét, de nem tudtam összedobni.
Ilyesmiről van szó (tehát egy php oldalon van az egész):
<form action="" method="POST">
<select name="Filter" id="Filter">
<option value="blue">blue</option>
<option value="green">green</option>
<option value="red">red</option>
<option value="yellow">yellow</option>
</select>
<button type="submit">Submit</button>
</form><?php
if (isset($_POST['Filter'])) {
....
} else {
.....
}
?>[ Szerkesztve ]
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
Új hozzászólás Aktív témák
- LEGO klub
- Alkoholista nevelde
- Motorola Moto G54 5G Power Edition - nem merül le
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Windows 11
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Elcsípte a Huawei kameratelefonja az első helyet
- Minecraft
- Jövedelem
- További aktív témák...
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen