- Milyen videókártyát?
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- TCL LCD és LED TV-k
- Milyen TV-t vegyek?
- SONY LCD és LED TV-k
- Übergyors Samsungnak próbál látszani egy hamisított NVMe SSD
- Azonnali VGA-s kérdések órája
- OLED TV topic
- VR topik (Oculus Rift, stb.)
- Internet Rádió építése (hardver), és programozása
Hirdetés
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Idén elmarad a BlizzCon
gp A hírek szerint más eseményeken lehet számítani a Blizzard idei bejelentéseire.
-
Übergyors Samsungnak próbál látszani egy hamisított NVMe SSD
ph A kissé megtévesztő külsejű, M.2-es modell valóságtól elrugaszkodott árral, illetve sebességgel kecsegtet.
Új hozzászólás Aktív témák
-
TonTomika
aktív tag
válasz Sk8erPeter #849 üzenetére
Erről a jsFiddle-el még nem hallottam, de feldobtam most oda, így megnézhetitek:
[link]A highlight-al adom meg neki a sötétszürke színt és ez alapján gondoltam kiszűrni, hogy annak az <li>-nek akinek van ilyen classa, annak a parentje legyen nyitva.
Azt, hogy szerveroldalon ezt hogyan rendeljem hozzá, hogy eleve nyitva maradjanak, meg végképp nem tudom, örülök hogy eddig sikerült megoldanom.
De úgy érzem hogy most már csak kb egy-két sor hiányzik ebből a kódból hogy működjön.
-
Sk8erPeter
nagyúr
válasz TonTomika #851 üzenetére
Itt felesleges az .on() használata, legalábbis úgy tűnik, nem fogod AJAX-szal bővítgetni a menüdet...
Csak feleslegesen erőforrás-zabáló. Elég click eseményre feliratkozni.A CSS-részt rendesen túlbonyolítottad, változtattam rajta, mondjuk tudom, hogy így elb@szódott a betűtípus, de azt már nem volt kedvem visszacsinálni.
Mindenesetre a selectorokat egyszerűbben is meg lehet adni, pl. a link színénél durván bonyolítottad, sokszor megadva ugyanazt a színt, miközben általánosabban is lehet.Magát a nyitogatós kódot az .on() részen kívül nem néztem át, lehet-e egyszerűsíteni.
Én itt most kihagytam a fenébe a highlight-os szarakodást, tök felesleges.Megmutatom, pl. szerveroldalon hogy lehetne megoldani, hogy eleve nyitva legyen, úgy, hogy belegenerálod az <ul>-be az active-list class-t, a linkhez meg pl. az active-link class-t. Ezeknek meg meg van adva, hogy eleve nyitva legyenek.
Most egyelőre itt meghagytam azt, hogy JS-sel tünteted el a többit. Egyszerűen úgy, hogy .not()-tal kizártam azokat, amik nem rendelkeznek az active-list class-szal.
A lényeg: a projekt1 az aktív oldal az enteriőrtervezésen belül, ez eleve nyitva van.[ Szerkesztve ]
Sk8erPeter
-
papa019
senior tag
Sziasztok!
Ez alapján a tutorial alapján csináltam meg egy legördülő listát.
Viszont a második legördülő listához ugye kell az itt is szereplő change() függvény, de ha ezt beillesztem a kódba, akkor az egész oldal nem töltődik be.
Ha kikommentezem a function tartalmát, akkor is ugyanez van, így arra gyanakszom, hogy valami a change sorával lehet.Valami ötletetek van a hibára?
-
papa019
senior tag
válasz Sk8erPeter #854 üzenetére
Felcseréltem az ajax után a } és a ) zárójelet...
Most fut minden, de a legördülő listákban nincs elem...Mostmár jó minden. A $(".city") jelölést is elrontottam, a pont helyett #-t raktam...
[ Szerkesztve ]
-
papa019
senior tag
Valaki tudna segíteni, hogy ezt hogy kell beilleszteni a kódomba?
Írja, hogy töltsem le az appot, de vannak benne .coffee fájlok. Illetve a telepítését sem értem...
Vagy csak simán fogom a chosen mappában a chosen.jquery.min.js fájlt és includeolom az index.php fájlomban és utána már használható a chosen() függvény?Ha esetleg valaki használt már ilyet, vagy tud egyszerűbb megoldást erre a funkcióra, az kérem segítsen.
-
Karma
félisten
A második variáció a nyerő.
A .coffee (CoffeeScript) fájlok a Chosen forráskódja, arra nincs szükséged ha csak felhasználni akarod.
Természetesen jQuery-nek is lennie kell a PHP-dben, még mielőtt meghivatkoznád a Chosen .min.js fájlját.
[ Szerkesztve ]
“All nothings are not equal.”
-
papa019
senior tag
Beleütköztem egy problémába a pluginnal:
Ha a html kódban elhelyezek option-öket a selectben, akkor tökéletesen működik, viszont én ajax-al hívok meg egy php fájlt, aminek a segítségével az adatbázisból megkapott adatokat írom ki így:
echo '<option value="'.$id.'">'.$category.'</option>';
Viszont ebben az esetben a kereső mezőben nem jelenik meg semmilyen lehetőség, azt írja, hogy nincs választható érték. Ha kikommentezem a chosen-t, akkor megint jó.
Arra figyeltem, hogy az ajax hívás után helyezem el a függvényben a
$('.country').chosen({no_results_text: "No results matched"});
sort.
Valakinek van valami ötlete? -
papa019
senior tag
Ez van a függvényemben:
function country_load(){
$('.country').load("country_load.php");
$('.country').chosen({no_results_text: "No results matched"});
});Ez a php:
<?php
include 'config.php';
$result = $DB->query("SELECT * FROM categories");
//echo '<option selected="selected">-- Válassz kategóriát --</option>';
$result->setFetchMode(PDO::FETCH_ASSOC);
while($row = $result->fetch())
{
$id=$row['id'];
$category=$row['name'];
echo '<option value="'.$id.'">'.$category.'</option>';
}
$DB = NULL;
?>Ez a form ide kapcsolódó része:
<label for="country">Ország:</label>
<select data-placeholder="Válassz országot" name="country" class="country" style="width:350px;" ></select><br /> -
Karma
félisten
Oké, így könnyű: a .load függvény aszinkron, azonnal visszatér, és majd valamikor a jövőben kitöltődik a lista. Amikor a következő sor (.chosen) lefut, még az üres elemet használja fel.
Használd a .load callback függvényét a plugin meghívására.
“All nothings are not equal.”
-
papa019
senior tag
Tökéletesen működik, köszönöm.
Step-by-Step dialog boxhoz nem tudtok valami jó tutorialt?
Nekem egy formhoz kellene, minden oldalon lenne mondjuk 2-3 szövegdoboz és egy next gomb, majd az utolsó oldalon a mentés. Még nem igazán találtam olyan megoldást, ami egy form esetén jó. -
Male
nagyúr
Szerintetek ez a függvény miért ad vissza false-ot, majd jeleníti meg utána az alert ablakban, hogy Lefutottam? (tehát az if ágba belép, de nem várja meg, hogy végezzen, hanem rögtön visszadobja, hogy false, aztán még fut tovább)
function akarmi(){
var kesz = false;
if(document.getElementById('iderakd')){
$('#iderakd').fadeIn('fast',function(){$('#iderakdmasik').html('MOSTMINDEGY');$('#iderakdmasik').fadeIn('slow');kesz = true;alert('Lefutottam');});
}
return kesz;
}..illetve hogy a fenébe csináljam meg akkor, hogy várja meg a fadeIn-ek befejeződését?
(Nem egészen ezt a kódot használom, de alapvetően ez lenne, és a lényeg, hogy ami meghívja ezt az akarmi() függvényt, az csak egy true-t kapjon vissza, MIUTÁN lefutott a teljes animáció, vagy false-ot, ha valamiért nem fut le... de semmiképpen se kezdje el, adjon vissza false-ot, majd fusson le, ahogy most csinálja.)
-
Sk8erPeter
nagyúr
Ez egy egész jó kis pluginnek tűnik, nem ismertem, kösz.
A multi-step wizardot pedig még akár jQuery UI Tabs segítségével is könnyen megoldhatod, vagy a jQuery Tools oldalán egyből látható Scrollable plugin segítségével.
Sk8erPeter
-
Sk8erPeter
nagyúr
Hát ez a kód ebben a formában igen ocsmány.
Itt tudod szépíteni:
http://jsbeautifier.org/Eredménye:
function akarmi() {
var kesz = false;
if (document.getElementById('iderakd')) {
$('#iderakd').fadeIn('fast', function () {
$('#iderakdmasik').html('MOSTMINDEGY');
$('#iderakdmasik').fadeIn('slow');
kesz = true;
alert('Lefutottam');
});
}
return kesz;
}Felesleges a document.getElementById, ha már jQuery-t használsz.
document.getElementById('iderakd')
HELYETT
$('#iderakd')A kód érdemi részére: szerintem módosítanod kéne a gondolatmenetedet, és épp, hogy a callback-hez kötni azt a függvényt, amit abban az esetben kell meghívni, ha az animáció kész van, mert itt a függvény azonnal visszatér (de ezt látod is), a callback tulajdonképpen aszinkron módon ettől függetlenül végrehajtódik.
Mi a cél?Sk8erPeter
-
Male
nagyúr
válasz Sk8erPeter #868 üzenetére
Köszi!
(Egyébként valóban ronda volt, máskor rendezetten szoktam alapból is írni a kódokat)Most kezdtem a jQuery-t, nem tudtam, hogy az felesleges itt már... köszi!
A kettőskereszt... igen, az kimaradt
Igen, azzal egyszerű lenne, csak nem tudom egyelőre megoldani. ajaxForm-ot használok, aminél van egy beforeSubmit rész, ezzel hívom meg a fenti függvényt, és azt akartam elérni, hogy mielőtt elküldi, fusson le az animáció. Igazából a lényeg nem is az lenne, hogy a küldés előtt lefusson, hanem hogy a küldés előtt elkezdődjön, és mire a szervertől megjön a válasz (ajaxForm success része elindul) addigra biztosan a végére is érjen.
Közben mondjuk már látom, hogy esetleg a deferred.done()-nal is meg lehet csinálni ha a success részben ezt használom... hát van még mit tanulnom a témában , viszont érdekelne, hogy mivel lehet megoldani az eredeti problémát, ha már így előjött. Tehát hogy ebből a függvényből csak akkor térjen vissza, ha már az egész animáció lefutott. -
Karma
félisten
"Tehát hogy ebből a függvényből csak akkor térjen vissza, ha már az egész animáció lefutott."
Ha jól kapisgálom, akkor szinkronná akarod tenni az animációt, azaz blokkoljon addig amíg be nem fejeződik... Na ezt felejtsd el, nem lehetséges, és káros is lenne (lefagy a böngészőtab).
A deferred.done() is csak annyit változtatna a helyzeten, hogy ha többmindent animálsz egy függvényhívással, akkor nem elemenként hívódik meg a callback, hanem csak egyszer, amikor az összes animáció befejeződött. De az aszinkronitás nem változik.
“All nothings are not equal.”
-
papa019
senior tag
válasz Sk8erPeter #867 üzenetére
Az egyetlen problémám az, hogy például a Tools oldalon a Scrollablehez is div tagekkel kell szétválasztani az egyes wizard oldalakat, de ha jól tudom, akkor formokban nem lehet a html kódban div.
Tegnap már meg tudtam volna valósítani a dolgot az accordionnal, de ahhoz is div felosztás kell. -
Sk8erPeter
nagyúr
"de ha jól tudom, akkor formokban nem lehet a html kódban div."
Ezt kitől hallottad? Ez egy nagyon téves információ! Az elég durva lenne, ha nem lehetne <div> a formon belül.
Mutatok egy példát, próbáld ki, hogy ezt validálod itt:http://validator.w3.org/#validate_by_input
XHTML 1.0 Strict valid dokumentum:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="hu" xml:lang="hu">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Blabla</title>
</head>
<body>
<form action="">
<div>
<div> blablabla
</div>
<div>
<input type="text" />
</div>
<div> blablabla
</div>
</div>
</form>
</body>
</html>Látható, hogy több divet is beleraktam a formba, az eredmény mégis "This document was successfully checked as XHTML 1.0 Strict!". Pedig az XHTML 1.0 Strict elég kényes bármiféle validációs hibára.
A lényeg tehát az, hogy semmi baj nincs a dives felosztással! Használd nyugodtan, formon belül is. Sőt! Amennyiben nem raksz a <form>-on belülre egy "wrappert", akkor validációs hibába is fogsz futni!Példa:
.....
<form action="">
<input type="text" />
</form>
.....A ..... helyére a korábbi kódot kell berakni, ha validálni akarod, ennek eredménye egy validációs hiba:
"Line 9, Column 28: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag"
Tehát kell az a <div>, vagy az itt felsorolt elemek valamelyike.Sk8erPeter
-
Male
nagyúr
Kb jól sejted, az pedig egyáltalán nem gond ebben az esetben, ha addig megfagy az oldal, hiszen addig ne is tegyen vele semmit a felhasználó.
Most ezt komolyan nem is lehet megoldani?
(A deferred.done()-t meg tudom hívni a success részen, és ha az oda szánt részt a deferred.done() callbackjébe teszem, akkor végülis elértem a "szinkronitást", amit akartam, hiszen a successbe szánt rész csak akkor fut le, amikor az animáció már végzett. Már ha jól értem a működését.)
-
Sk8erPeter
nagyúr
Karma már leírta előttem a lényeget. Érdemes lenne átgondolni, hogy biztos jól közelíted-e meg a kérdést, és hogyan is tudnád elkerülni az animáció megvárását. Végső esetben muszájból meg lehet oldani az animáció bizonyos időre történő beállítását ('slow', 'fast' helyett milliszekundumban megadott időre, pl. 600), majd ennyi idő utánra időzíteni egy függvény lefutását setTimeOut()-tal, de esélyes, hogy ez nem túl szép megoldást fog eredményezni.
Akkor végül is annyi a lényeg, hogy az animáció előtt elindítasz egy AJAX-os kérést, futtatod az animációt, közben AJAX-szal pedig lehet, hogy már rég megkaptad a választ, de az animáció még mindig fut, és nem akarod, hogy ez "félbeszakadjon", mert mondjuk kicseréled az adott elemet az AJAX-os kommunikáció eredményeként kapott válasz feldolgozása során?Hátha ez segít (saját megoldások helyett javasolnám ezt inkább):
jQuery BlockUI Plugin
Próbálgasd ki a demókat![ Szerkesztve ]
Sk8erPeter
-
Karma
félisten
Azt nem lehet értelmesen megoldani, hogy semmi se történjen amíg az animációk folynak. A callbackkel nem blokkoló várakozást érsz el, tehát amíg az animálás megy, szabadon fut a JS motor. Mindössze leírhatod, hogy mi történjen amikor vége.
Egyébként ez az alapja annak, hogy láncot alakíts ki az események között - szerintem ezt szeretnéd végcélként -, mindössze az áhított eszköz nem jó.
Apropó BlockUI: ez se a szó szigorú értelmében blokkol, csak elegánsan letakarja a felületet, hogy a felhasználó ne tudjon semmire se rányomni. Ilyen megoldást lehet csinálni, de a világot leállítani nem. (És még mindig, szerintem nem is akarod azt, csak azt hiszed )
[ Szerkesztve ]
“All nothings are not equal.”
-
papa019
senior tag
válasz Sk8erPeter #872 üzenetére
Uppsz.
Akkor félreinformáltak. A hsz-ed utolsó része egyébként érdekes számomra, mert akkor a mostani formom gondolom hibás, bár működni működik:
<div id="box_place" style="display:none;">
<p class="validateTips">Minden mezõt ki kell tölteni!</p>
<form id="add_place_form">
<label for="name">Név:</label>
<input type="text" name="name" required="required" id="name" class="text ui-widget-content ui-corner-all" />
<br />
<label for="description">Leírás</label>
<br />
<textarea name="description" required="required" id="description" value="" class="text ui-widget-content ui-corner-all" cols="50" rows="6" style="resize:none"></textarea>
<br />
<label for="address">Cím:</label>
<input type="text" name="address" required="required" id="address" value="" class="text ui-widget-content ui-corner-all" />
<br />
<label for="wikipedia">Wikipédia link:</label>
<input type="text" name="wikipedia" id="wikipedia" value="" class="text ui-widget-content ui-corner-all" />
<br />
<label for="category">Kategória:</label><br />
<select name="category" class="category" style="width:350px;" >
</select><br />
<label for="parent_area">Szülõ terület:</label><br />
<select name="parent_area" class="parent_area" style="width:350px;" >
</select>
</form>
</div> -
Sk8erPeter
nagyúr
Legfőképp attól függ, hogy "hibás"-e, hogy milyen DOCTYPE-pal validálod.
Pl. az XHTML Strict 1.0-val 26 validációs hiba jön elő, ami ilyen kis mennyiségű kódnál elég sok.Felraktam ide a kódot, amit kipróbálhatsz validátorban, és ami invalid (26 hiba):
http://pastebin.com/SViFGdMjJó is, hogy pont ilyen kódot mellékeltél: érdekes megfigyelni, hogy amint a formon belüli összes tartalmat egyetlen árva <div>-be beraktam, máris a 26-ból összesen 6 hiba lett. 20-szal kevesebb hiba. Asszem ez elég bizonyíték arra, hogy pont, hogy jól jön formon belül is egy div.
Lényegében a kóddal alátámasztottad az előző mondókámat.Felraktam ide a valid változatot, 0 hibával:
http://pastebin.com/8f4sMB5pÉrdemes megnézni a változtatásokat, hogy milyen attribútumok nem léteznek, meg hogyan lehet javítani az invalid kódot. Az oldaladat meg alkalmanként érdemes validátorral ellenőrizni SZERINTEM.
Egyébként van, aki amellett kardoskodik, hogy a validációs hibákat le kell sz@rni, de ezzel nem értek egyet, mert a validációval sok hiba forrása is kiderülhet, plusz az invalid kód könnyen vezethet oda, hogy a JavaScript-kódok sem működnek helyesen, valamint sok esetben bizonyos böngészőkben (még véletlenül sem akarom említeni az IE-t ) megjelenítési hibákat is okozhatnak a helytelen HTML-kódok. Nekem sokszor jött már jól, amikor ötletem nem volt már, hogy a JS-kódom miért nem működik - ráküldtem a validátort, és kiderült, hogy egy elem zárótagjét rossz helyre raktam, és ez megbolondította a kódot (ez egy eset a sok közül).[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Jaja, persze, a BlockUI alapvetően a felhasználói interakciókat "blokkolja" adott elem(ek)en belül, szóval attól még a kódok a háttérben ugyanúgy érvényre jutnak. Igazából azért linkeltem neki, mert lehet, hogy ezzel is meg tudja oldani részben a problémát (bár jobban belegondolva valószínű, hogy nem a klattyogásokat akarja elkerülni).
Sk8erPeter
-
Male
nagyúr
válasz Sk8erPeter #874 üzenetére
Igen, ez lenne a lényeg, tehát ahhoz hogy jól és szépen működjön amit kitaláltam, az animációnak le kell futnia, mielőtt a success részen lévő kód beír valamit a választól függően.
(Egyébként igen, a kattintgatás teljesen mindegy, mert az animáció kezdete után már semmi nincs, amire kattintani tudna)
Köszönöm a linket, megnézegetem, kipróbálom!
-
papa019
senior tag
válasz Sk8erPeter #877 üzenetére
Köszönöm szépen.
Közben egyébként átalakítottam és tettem bele <div> tageket, így már működik az accordion is. Viszont a <select> helyeken azért nem raktam <option>-öket, mert azokat php echo (ajax) segítségével illesztem be.
Ezentúl használom majd a validátort aktívan.
A !DOCTYPE nekem egyébként csak sima html-nek van beállítva. -
Sk8erPeter
nagyúr
Szívesen!
"A !DOCTYPE nekem egyébként csak sima html-nek van beállítva."
Szóval akkor HTML5-ös a DOCTYPE.===
(#879) Male : viszont akkor az játszik, amit Karma mondott, és ebben az esetben nem biztos, hogy hasznát fogod venni a BlockUI-nak, mert úgy tűnik, alapvetően nem a felhasználói interakciókat akarod átmenetileg ellehetetleníteni.Sk8erPeter
-
Male
nagyúr
válasz Sk8erPeter #881 üzenetére
Igen, az nem oldja meg, ahogy látom. Végülis akkor mi lehet a megoldás? A defferred.done() megoldja, ahogy írtam (a success részre rakva, és aminél fontos, hogy az animáció lefutása után történjen csak meg, azt ennek a callbackjébe pakolva), vagy az rossz irány?
-
papa019
senior tag
válasz Sk8erPeter #881 üzenetére
A getJSON() függvénnyel kapcsolatban kérdezném azt, hogy:
Egy php fájl generálja válaszként a json fájlt. A php a szerver gyökerében van, míg a js fájl a js mappában. Olyat tudok csinálni valahogy, hogy a js fájlban a Json fájl elérési útjára a könyvtárszerkezetben felette lévő könyvtárra mutatok vissza? -
-
papa019
senior tag
Jelenleg így generálom a JSON-t (ajaxLoad.php):
$result = $DB->prepare("SELECT * FROM places");
$result->execute();
$result->setFetchMode(PDO::FETCH_ASSOC);
while($row = $result->fetch())
{
$rows[]=$row;
}
//var_dump($rows);
echo json_encode($rows, JSON_UNESCAPED_UNICODE);A jelenlegi adatbázis alapján pontosan ezt az adatot generálja (nem tudom, hogy ez szabványos JSON formátum-e, nekem annak tűnik):
[{"id":"1","name":"a","description":"a","address":"a","wikipedia":"a","points":"","category":"62","parent_area":"7","parent_has_parent":"1"},
{"id":"2","name":"123213","description":"123123","address":"123","wikipedia":"123123","points":"","category":"70","parent_area":"0","parent_has_parent":"0"},
{"id":"4","name":"as","description":"as","address":"as","wikipedia":"as","points":"","category":"69","parent_area":"0","parent_has_parent":"1"},
{"id":"5","name":"asd","description":"asd","address":"asd","wikipedia":"asd","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"6","name":"asfd","description":"asd","address":"sad","wikipedia":"asd","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"7","name":"asfd","description":"asd","address":"asd","wikipedia":"sad","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"8","name":"asfd","description":"asd","address":"asd","wikipedia":"sad","points":"","category":"62","parent_area":"4","parent_has_parent":"0"},
{"id":"9","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"68","parent_area":"1","parent_has_parent":"0"},
{"id":"10","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"70","parent_area":"9","parent_has_parent":"0"},
{"id":"11","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"69","parent_area":"1","parent_has_parent":"0"},
{"id":"12","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"69","parent_area":"9","parent_has_parent":"0"},
{"id":"13","name":"1","description":"2","address":"34","wikipedia":"4","points":"","category":"70","parent_area":"4","parent_has_parent":"1"},
{"id":"14","name":"1","description":"11","address":"1","wikipedia":"1","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"15","name":"1","description":"11","address":"1","wikipedia":"1","points":"","category":"62","parent_area":"1","parent_has_parent":"1"},
{"id":"16","name":"","description":"","address":"","wikipedia":"","points":"","category":"70","parent_area":"1","parent_has_parent":"1"}]És jelenleg mint gyors "megoldás", megpróbáltam Sk8erPeter kolléga korábbi kódját használni a feldolgozásra (pár hónapja segített egy másik json fájl feldolgozásában):
$.getJSON(json_file_path, function(data) {
var items = [],
list_html = '';
$.each(data.folder, function(key, val) {
var list_item_actual = '',
list_inner = {};
list_item_actual += '<li id="' + id + '">' + '<u><b>' + name + '</b></u>' + '<u><b>' + description + '</b></u>' + ',<br />' + 'address: ' + address + ',<br />' + 'wikipedia: ' + wikipedia + ',<br />' + 'points: ' + points + ',<br />' + 'cat: ' + category + ',<br />' + 'parent: ' + parent_area + ',<br />' + 'par: ' + parent_has_parent + ',<br />';
list_inner = $('<ul/>', {
'id': 'my-polygon-list-' + key,
'class': 'my-polygon-list',
html: list_items_inner.join('')
});
list_item_actual += list_inner.html();
list_item_actual += '</li>';
items.push(list_item_actual);
});
list_html = $('<ul/>', {
'id': 'my-location-list',
'class': 'my-new-list',
html: items.join('')
});
$('#get_informations').html(list_html.html());
});Szinte biztos voltam benne, hogy nem fog működni itt, de azért próba szerencse alapon megpróbáltam.
[ Szerkesztve ]
-
Karma
félisten
Hat ez a callback ranezesre egy folder nevu tagban kotoraszik At kene irnod ugy, hogy a data egy tomb (nem objektum), es abban a megfelelo dolgokat kotorod ki.
Tegyel a callbackbe egy breakpointot es mindenre feny derul.
Meg hasznalj Chrome-ot, a Developer Toolst benne, es abban a Network fulet.[ Szerkesztve ]
“All nothings are not equal.”
-
papa019
senior tag
Közben elkezdtem nézegetni a hivatalos dokumentációt.
Addig eljutottam, hogy [object Object] a kimenet, ha minden dolognak az id-jét és a nevét írom ki, lassan sikerülni fog remélhetőleg.
Már csak azt nem tudom, hogy a php-ben hogyan tudom átírni, hogy a visszaadott adat típusa json legyen és ne text/html...[ Szerkesztve ]
-
papa019
senior tag
Sorry a double-postért, közben azt már sikerült megoldani, hogy kiírjam egy jquery dialogba az adatokat:
function dialog_load(){
$("#get_informations").dialog({
title: 'Adatok',
width: 500,
height: 500,
modal: true,
resizable: true,
draggable: false,
show: "slide"
});
}
function load_data(){
var json_file_path = '/ajaxLoad.php';
$.getJSON(json_file_path, function(data) {
var items = [];
$('#get_informations').html("");
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val.id + ',' + val.name + ',' + val.description + ',' + val.address + ',' + val.wikipedia + ',' + val.points + ',' + val.category + ',' + val.parent_area + ',' + val.parent_has_parent + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('#get_informations');
});
}Majd át kell őket pakolni változókba és már majdnem kész is az adatok betöltése.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Kiadhatnál esetleg egy
header('Content-type: application/json');
fejlécet PHP-vel (lásd ezt), hogy korrekt legyen a dolog.
Bár a .getJSON() eleve JSON-ként próbálja parse-olni a kapott adatot, ha nincs vele validitási probléma, vagy nincs valami plusz elcseszett header beállítva, akkor jól kellene működnie.(#888) papa019: ja, ez így működőképes.
(#882) Male : nehéz így konkrétumot mondani kód nélkül, tök esetfüggő lehet a dolog, hogy hogyan érdemes megoldani. Ha van egy konkrét kódot, aminél elakadtál, átalakításra szorulna, esetleg megmutathatnád, felrakhatnád jsFiddle-re, ÉS AKKOR JÓL SZANASZÉJJELCINCÁLJUK ÉS SZÉTFIKÁZZUK. Na jó, nem, szóval segítünk.
===
(#886) Karma : hádeizéhozé
Nem kell azon a kódon semmit átalakítania, hogy tömböt kapjon JSON-ben, mert eleve azt kap, miután json_encode()-olta ilyen formátumra, ahogy látható is.
Szóval jól csinálta.[ Szerkesztve ]
Sk8erPeter
-
papa019
senior tag
Ha a fenti Jsont-t feldolgozó szkriptet kicserélem erre:
$.getJSON(json_file_path, function(data) {
$.each(data, function(key, val) {
var polygon, polygon_points = google.maps.geometry.encoding.decodePath(val.points);
polygon = new google.maps.polygon({
paths: polygon_points,
strokeColor: "#daa520",
strokeOpacity: 1,
strokeWeight: 1,
fillColor: "#daa520",
fillOpacity: 0.4
});
polygon.setMap(map);
});
});, akkor miért írja az alábbi hibát a firebug?
TypeError: google.maps.geometry is undefined
Ugyanebben a fájlban van a polygon lementése is, ott a
google.maps.geometry.encoding.encodePath(points)
függvényt használom és tökéletesen működik.
[ Szerkesztve ]
-
Frigo
őstag
-
Male
nagyúr
válasz Sk8erPeter #889 üzenetére
Ok, most tovább kellett lépnem (átmenetileg mindegy, hogy van egy ugrás), de majd visszatérek rá, aztán akkor bedobom akkor.
Addig is, ha már .getJSON a téma, erre valóban szükség van szerintetek: katt ?
-
Lacces
őstag
Sziasztok!
Van egy kis problémám, nem tudom hogyan valósítsam meg... / vagy mit rontok el.
Ötlet: Van egy input text mező, és egy select mező, amelyben értékek vannak. És egy gépelés alapján történő listázást szeretnék. (passz, hogy hívják ezt angolul)
Ha az input mezőbe elkezdek írni például: ab, akkor a select mezőbe csak az ab-val kezdődőek jelenjen meg: például Abba, abból stb.
Felmerült bennem, hogy magamtól megírom jquery-ben, egyrészt tanulni, mert már nagyon régen írtam jquery-t... Csak hát nem működik.function searchProject(){
// input text mező, bevitel. "kereső kifejezés"
var search = $('#searchProject').val();
// ez most használaton kívül, de itt nem más, mint a select mezőben lévő
// optionok values és text értékét akartam volna beolvasni.
var values = $('#projectlist>option').each(function() { return $(this).val();});
var texts = $('#projectlist>option').each(function() { return $(this).text();});
// ez egy másik módszer az option-ok beolvasására egy tömbre.
var options = $('#projectlist').attr('options');
// select mezőről készítek egy "backup"-ot
var backup = $('#projectlist').html();
// a kereső kifejezést méretének lekérdezése
var size = search.size();
if( size > 0){
// option-ok eltávolítása
$('#projectlist option').remove();
// options tömbön végig megyek
for( var index in options)
// ha a kereső kifejezés megegyezik az adott option subtextjével,
// akkor töltse fel a select mezőt.
if( search == index.text().substring(0,size) )
$('#projectlist option').append('<option value=' + index.val() +'>' + index.text() + '</option>');
}
}Miket ronthattam el? Hogyan érdemes megcsinálni? Vagy ha erre a megvalósításra egy oldalt is ajánlotok (tényleg nem jut eszembe a neve ennek... biztos valami auto..) Hadd tanuljak belőle
<input id="searchProject" type="text" onkeyup="searchProject()" />
[ Szerkesztve ]
-
Karma
félisten
Én nagy ívben kerülném, hacsak nincs konkrétan a cross-domain requestekre szükség, és a jQuery beépített támogatása nem elég... Modern böngészőkben meg semmi szükség JSONP-vel kockáztatni.
Lacces: A kódodat nem olvastam, de a funkcionalitás amit szeretnél az "autocomplete" névre hallgat, és a jQuery UI-ban van is erre beépített komponens.
[ Szerkesztve ]
“All nothings are not equal.”
-
Jim-Y
veterán
Szerintem erre tökéletesen jól használható a JQuery autocomplete plugin. Én ezt arra használtam, hogy:
-van egy jstree az oldalon, és meg kell valósítani a keresést benne
-raktam egy input fieldet a fa fölé, ha 3 karaktert beírok, akkor egy script megnézi az adatbázisban, hogy a 3 betűhöz található e egyezés a fabeli elemekre, ha igen, akkor a találatokat egy autocomplete mezőben jeleníti meg az input field alatt.
Tehát ha beírom, hogy abb, akkor ha van abba,abbrakadabra stb a fában, akkor csak azokat listázza.Gondolom egy ilyen működés neked is jó lenne nem? A pluginnek át lehet adni egy adatszerkezetet, amit az input field alatt megjelenít.
-
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
-
Lacces
őstag
Ez a jsField nekem még vadiúj .
Összeraktam egyet. Itt a link Így jó összerakva?
HTML-t adtam meg a Jquery függvényt, meg oldalt kijelöltem amit kell. -
Male
nagyúr
Igazából nem értem, hogy lehetne ezzel bármi problémát is okozni. Oké, elküldheti máshová a választ, de ezzel mit ér el? Semmi olyan infó nem megy ki, amit eltérítés nélkül nem tudna megszerezni, hiszen a saját gépére menne különben
Köszi a linkeket, elolvasom, hátha abból kiderül
Új hozzászólás Aktív témák
- HP Probook 340S G7 i5-1035G1/8GB/256SSD/Windows 11 -10% Csak ameddig a készlet tart!89.780 Ft
- iPhone 14 Pro 128 GB Space Black, 11 hónapos, kártyafüggetlen, 2024. május végéig garis , akku 91%
- Asus VivoBook X509JA-BQ904T
- HP EliteBook 640 G9 Ezüst (14" / Intel i5-1235U / 16GB / 512GB SSD / Win 11 Pro) -10% Most 203.990 F
- Lenovo M810z AIO Core I5 6400 4x2700/8GB/120G SSD/wifi/cam 21,5 -10% 66.950 ft