- iPhone topik
- Honor 400 Pro - gép a képben
- One mobilszolgáltatások
- Samsung Galaxy Z Fold6 - ugyanaz, sarkosan fogalmazva
- Samsung Galaxy A34 - plus size modell
- Mobil flották
- Azonnali mobilos kérdések órája
- Google Pixel topik
- Honor 400 - és mégis mozog a kép
- Na! Ez egy JÓ utólagos autós fejegység - Minix CP89-HD
-
Mobilarena
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
papa019 #2770 üzenetére
Mivel gondolom Te nem is deklaráltál és definiáltál allFields változót.
Itt menj rá a "View Source"-ra, ott láthatod, milyen kódot alkalmaz.
Még a függvények előtt így kezdi:var name = $( "#name" ),
email = $( "#email" ),
password = $( "#password" ),
allFields = $( [] ).add( name ).add( email ).add( password ),
tips = $( ".validateTips" ); -
-
Sk8erPeter
nagyúr
válasz
papa019 #2765 üzenetére
Ja értem, tehát akkor egy jQuery UI Dialogot dobálsz fel, és ott maradnak meg a formelemek.
Akkor ezek szerint PHP-hoz nincs köze, azt hittem, arról van szó, de ezek szerint ÚJ kategória hozzáadására szolgáló formon jön elő a gond.Ha jól értem, akkor a kérdésed igazából már csak arra irányul, hogy miért mentődnek el a mezők, a többi megoldódott akkor, nem?
Ezt az elmentés-problémát minden böngészőben tapasztalod? Mert amúgy látszólag teljesen jól működik a kódod, amit belinkeltél. Vannak olyan extensionök/pluginek böngészőkhöz, amik elmentik az űrlap tartalmát, akár még az is beleszólhat... vagy ha van valami scripted az oldalon, ami ezért az elmentésért, visszaállításért felelős.
Nálad itt, a jsFiddle-ön is "elmenti" az értékeket? (Ezt a böngésző-kiegészítő esetleges megléte miatt kérdezem.) -
Sk8erPeter
nagyúr
válasz
papa019 #2763 üzenetére
"Arra gondolok, hogy amikor betöltöm az oldalam és elmentek egy formot, akkor amikor a következő alkalommal megnyitom ismét, akkor a korábban elmentett adatok megjelennek az input fieldekben, a megjelölt select elemek is ugyanazok."
Gondolom szerveroldalon kitölteted ismét. Akkor a szerveroldali kódot kellene módosítanod első körben, hogy üresen kapd meg a formot... vagy nem tudom, mire gondolsz, de alapvetően egy formnak teljesen üresnek kell lennie, hacsak ebbe valami nem szól bele, pl. az, hogy PHP-val kitöltöd előre. Bár egy elmentett formnál még jó, hogy szerkesztéskor így viselkedik...ahogy kell.Amiről beszéltél, arról tudsz feltenni valami példakódot jsFiddle-re szemléletetésként?
Főleg ezt a vörös színezetet nem vágom.....feltételezem, ez valami validációs kód miatt kerül köré, mivel üres lett a form adott fieldje....clear_form_elements(document.getElementById('add_category_form'));
Miért ragaszkodsz még mindig a plain JavaScripthez, ha jQuery-t használsz?clear_form_elements($('#add_category_form'));
Ha már...Magára a chosen plugin használatára is mutathatnál példát szintén jsFiddle-ön keresztül, hogy ne nekünk kerüljön időbe, hogy összeállítsunk egy demót.
-
papa019
senior tag
válasz
papa019 #2762 üzenetére
Tud valaki valami tuti biztos megoldást egy form elemeinek kiürítésére?
Arra gondolok, hogy amikor betöltöm az oldalam és elmentek egy formot, akkor amikor a következő alkalommal megnyitom ismét, akkor a korábban elmentett adatok megjelennek az input fieldekben, a megjelölt select elemek is ugyanazok. Ezeket szeretném eltüntetni.
Én az alábbi kódot találtam erre, ami egyszerűnek tűnik számomra:function clear_form_elements(ele) {
$(ele).find(':input').each(function() {
switch(this.type) {
case 'password':
case 'select-multiple':
case 'select-one':
case 'text':
case 'textarea':
$(this).val('');
break;
case 'checkbox':
case 'radio':
this.checked = false;
}
});
}Viszont ezzel több problémám is van. A jQuery chosen pluginja nem működik, ha használom. Egyszerűen nem jelenít meg semmit a select listában a plugin.
Emellett az input fieldek körül megjelenik egy halvány vörös színezet.
Nem jövök rá, hogy ez miért lehet...A függvényt egyébként az alábbi módon hívom meg, mielőtt megjelenne maga a form egy jquery dialogban.
clear_form_elements(document.getElementById('add_category_form'));
Illetve a jQuery chosen plugin meghívása előtt töltök adatokat a megfelelő select mezőkbe, szóval nem az a gond, hogy üresek a mezők.
-
Sk8erPeter
nagyúr
válasz
papa019 #2758 üzenetére
"És például valahogy úgy hívnám meg a függvényeket, hogy szam_fv.osszeadas(), stb.
Tudom, hogy ha létrehoznék egy class-t, akkor abba tudnék függvényeket tenni, de én csak szimpán a függvényeket szeretném csoportokba rendezni..."
Most megválaszoltad magadnak, akkor mi a kérdés?
Miért nem jó neked az osztály? Pont az kell neked.Egyszerű példa:
function Valami(){
this.elso = function(){
// ...........
}
this.masodik = function(arg){
// ...........
}
// ...........
}
var valami = new Valami();
valami.elso();
valami.masodik(1234); -
v2izzy
tag
válasz
papa019 #2714 üzenetére
Így már igen működik, bár az kicsit fura, hogy az obj-nak az area property-je a polygon, majd az egész obj-ot beleteszed a polygonba.
De hát így fog működni ezzel a módszerrel az igaz. Viszont itt egy példa ami szemlélteti, hogy különböző ciklusfajták hogy kezelik a handler függvényt. Ez alapján így is írhatnád:
data = items;
data.forEach(function(x) {
...
var obj = {
'name': x[i-4],
...
'area': polygon
};
google.maps.event.addListener(polygon, 'click', function(event){
showArrays(event, obj, this.getPath());
});
google.maps.event.addListener(polygon, 'rightclick', function(event){
showContextMenu(event.latLng, obj);
});
...
}) -
v2izzy
tag
válasz
papa019 #2712 üzenetére
Például egy új embernek, vagy neked később nehezebb lesz egyből megértened, mi is történik és szerintem egy .forEach() gyorsabb is mint így (bár ez csak nagy adatmennyiségnél lenne feltűnő).
Másrészt nem az volt kezdetben a gondod, hogy csak az utoljára kiszedett tömb elemei kerülnek bele? A pop-os módszerrel ez így is van, de ha forEach-el csinálod, akkor az eventListener-ek handler függvényében, mindig az aktuális elemet tudod felhasználni és akkor így nem szükséges id. Remélem jól értelmeztem a problémát. -
Sk8erPeter
nagyúr
válasz
papa019 #2704 üzenetére
Nyilván nem is kell plusz lekérdezés, annyi adatot pakolhatsz bele objektumba, amennyit nem szégyellsz.
De mire jó ez, hogy fordítva íratod ki??Miért nem eleve az elvárt sorrendben érkezik szerveroldalról? Az ilyen nyakatekert kódoknak csak a kárát fogod látni a későbbiekben (ha még nem tapasztaltad, majd úgyis rájössz, tényleg).
A kódodban sehol nem látom, hogy kigyűjtenéd azokat az adatokat, amelyekre neked tényleg szükséged van majd a térkép megjelenítéséhez, és az sem volt világos, hogy végül is milyen adatot szeretnél, hogy elérjen a Google Maps API pluszban. -
Sk8erPeter
nagyúr
válasz
papa019 #2611 üzenetére
Pedig korábban egy eléggé hasonlót kérdeztél itt.
-
Karma
félisten
válasz
papa019 #2611 üzenetére
A jQuery AJAX függvényei, közöttük a jQuery.get(), a jQuery.getJSON(), esetleg a jQuery.ajax() függvények lesznek segítségedre. (Az utolsó teljesen általános, az előbbi kettő ennek egyszerűbb wrapperei.)
Az elv pont az, ahogy írod, a PHP ilyen adatot dumpol ki, ezen függvények megfelelőjével indítasz egy XHR-t a háttérben, aztán a callback függvényben azt csinálsz a behozott adattal, ami jól esik.
-
Sk8erPeter
nagyúr
válasz
papa019 #2595 üzenetére
Így van, de itt van is egy példa, a for ciklus a lényeg, ott épp használja a getAt() függvényt:
function showArrays(event) {
// Since this Polygon only has one path, we can call getPath()
// to return the MVCArray of LatLngs
var vertices = this.getPath();
var contentString = "<b>Bermuda Triangle Polygon</b><br />";
contentString += "Clicked Location: <br />" + event.latLng.lat() + "," + event.latLng.lng() + "<br />";
// Iterate over the vertices.
for (var i =0; i < vertices.length; i++) {
var xy = vertices.getAt(i);
contentString += "<br />" + "Coordinate: " + i + "<br />" + xy.lat() +"," + xy.lng();
}
// Replace our Info Window's content and position
infowindow.setContent(contentString);
infowindow.setPosition(event.latLng);
infowindow.open(map);
}A leírás meg szintén ezt mondja:
"Polygon Arrays
A polygon specifies its series of coordinates as an array of arrays, where each array is of type MVCArray. Each "leaf" array is an array of LatLng coordinates specifying a single path. To retrieve these coordinates, call the Polygon's getPaths() method. Since the array is an MVCArray you will need to manipulate and inspect it using the following operations:
» getAt() returns the LatLng at a given zero-based index value.
» insertAt() inserts a passed LatLng at a given zero-based index value. Note that any existing coordinates at that index value are moved forward.
» removeAt() removes a LatLng at a given zero-based index value.Note: you cannot simply retrieve the ith element of an array by using the syntax mvcArray[I]; you must use mvcArray.getAt(i)."
=============================
A PHP-s részre:
az escape-elésről és PDO-témáról nemrég diskuráltunk: [link], [link]==
Mondjuk akkor esélyes, hogy ez is új lesz.
Látom valszeg valami adatbázis-wrappert használsz (bár esélyes, hogy nem használod ki a lehetőségeit), de nem látok bele a működésébe. A PDO használata indokolt lehet. -
Sk8erPeter
nagyúr
válasz
papa019 #2592 üzenetére
Nyugalom...
Amúgy én nem "haragszom".Hidd el, a Te érdekedben hívtam fel ezekre a figyelmet, nem azért, hogy csak azért is belédkössek. Fontos ezeket az elején megtanulni, hogy az ember később ne kövessen el nagy hibákat ezekből kifolyólag.
Ebből meg kihagytad az informacio függvényt, kapásból kidobja:
"Uncaught ReferenceError: informacio is not defined"
Ehhez kell:// Listener a K épület polygonjára való kattintáshoz
google.maps.event.addListener(k_epulet, 'click', informacio); -
Sk8erPeter
nagyúr
válasz
papa019 #2590 üzenetére
"Valamiért js-binen az egész nem megy, pedig nálam minden fut, csak nem tudom menteni a pontokat... :S"
Őőőő, de remélem most nem várod, hogy a szerveroldali dolgok menjenek jsbinen..."Igen, igen láttam, de aztán rájöttem, hogy felhasználóbarátabb egy külön gombnyomásra menteni, mint a polygonra kattintással."
És? Attól még confirm dialógust lehet nyitni jQuery UI Dialoggal is...
Abba meg olyan gombot raksz bele, amilyet szeretnél.Én nem a szerveroldali kódra voltam kíváncsi, hanem hogy hogyan szeded össze, serializálod, és akarod elküldeni szerveroldalra. Ergo a kliensoldal az érdekes.
Amúgy ha már mellékelted a szerveroldali kódodat: SOHA ne pakolj adatbázis-query-be közvetlenül, escape-elés nélkül alapvetően megbízhatatlan, felhasználótól érkező, általa könnyen módosítható adatot. SOHA.
-
Sk8erPeter
nagyúr
válasz
papa019 #2583 üzenetére
Persze, hogy elő lehet csalogatni ilyen esetekre a jQuery UI Dialogot.
Beleraktam a demódba:
http://jsbin.com/uyevux/5/edit#javascript,html,live
Lásd az input_data() függvényt.
Amúgy még annyit csináltam, hogy a lap aljára, a HTML-kódba beleraktam ezt:
<div id="jquery-ui-dialog" title="Dialog" class="hidden">
<p></p>
</div>Meg létrehoztam a .hidden class-t, CSS-ből ezt alapból elrejtem.
Aztán a jQuery UI Dialog inicializálása:var $jquery_ui_dialog = $('#jquery-ui-dialog'), dialog_title = "My own map's dialog!";
$jquery_ui_dialog.dialog({ autoOpen: false });
$jquery_ui_dialog.dialog( "option", "title", dialog_title );
$jquery_ui_dialog.html('<p>I don\'t really know what to do with the "polygon_points" variable! :D</p>');
$jquery_ui_dialog.dialog('open'); -
Sk8erPeter
nagyúr
válasz
papa019 #2559 üzenetére
De nem is bonyolult. Az adatok elküldése előtt gyűjtsd össze, majd serializáld az adatokat - most épp én vagyok az új Kazinczy
-: [.serialize()].
Szerk.:
Pl. ha PHP-t választasz, POST metódussal elküldöd, és tömbszerűen megkapod az adatokat szerveroldalon:a hivatalos oldalon lévő példával élve:
<form>
<div><input type="text" name="a" value="1" id="a" /></div>
<div><input type="text" name="b" value="2" id="b" /></div>
<div><input type="hidden" name="c" value="3" id="c" /></div>
<div>
<textarea name="d" rows="8" cols="40">4</textarea>
</div>
<div><select name="e">
<option value="5" selected="selected">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></div>
<div>
<input type="checkbox" name="f" value="8" id="f" />
</div>
<div>
<input type="submit" name="g" value="Submit" id="g" />
</div>
</form>Ez a .serialize() után:
a=1&b=2&c=3&d=4&e=5
Szerveroldalon PHP-vel pedig így kapod meg őket:
$_POST['a'] (ez itt épp == 1), $_POST['b'] (==2), stb....
-
Sk8erPeter
nagyúr
válasz
papa019 #2555 üzenetére
jQuery UI Dialog - Modal form
Aztán mondjuk Save gomb hatására AJAX-szal elküldöd szerveroldalra, hogy ott aztán el legyen mentve.
Hogy milyen adatbázist használsz, az teljesen más lapra tartozik, konkrét feladattól is függ, de adatbázisszervernek tökéletesen megfelelhet MySQL is. De ha adatbázisba fel akarod tölteni az adatokat, akkor gondolom az már egyértelmű, hogy ahhoz szerveroldali programozás (pl. PHP-vel vagy mással, szervertől függ) szükséges.Tehát dialógus felugrik, felhasználó beírja az adatokat, először kliensoldalon validálsz, majd ha oké, elküldöd az adatokat szerveroldalra, szerveroldalon megint validálsz, feldolgozod az adatokat, majd feltöltöd adatbázisba, kész.
-
Sk8erPeter
nagyúr
válasz
papa019 #2546 üzenetére
Egymásba ágyazott ciklusokkal.
Tehát jelen esetben egy each-en belüli each-csel. Tulajdonképpen megcsinálhatod for ciklussal is, de az each egy egész egyszerű iterátor.
Remélem jól értettem, amit szerettél volna, és a polygonokat szeretted volna még bejárni.
Megcsináltam ezt a módosítást is, nézd meg az each-nél lévő részt:
http://jsfiddle.net/Sk8erPeter/kVFb2/1/
Így már természetesen jóval hosszabb infókat ír ki. -
Sk8erPeter
nagyúr
válasz
papa019 #2544 üzenetére
1.) Megkukkantottam egy példakódot az Info Windows-ra: [link]
2.) Globálissá tettem az infowindow és marker változót (lásd az elején).
3.) Beraktam a megfelelő tartalmat a lista után:list_html =
$('<ul/>', {
'id' : 'my-location-list',
'class': 'my-new-list',
html: items.join('')
});
$('#location_data').html(list_html.html());
infowindow = new google.maps.InfoWindow({
content: list_html.html()
});
infowindow.open(map, marker);Nyilván az infowindow rész a lényeg.
4.) Kész: [link]. Kattints a gombra a teszteléshez, akkor felugrik az infowindow.
Ugyanez jsFiddle-re felrakva, ott JSLinttel validálva: http://jsfiddle.net/Sk8erPeter/kVFb2/
Persze nem egy gyönyörű kód, de jó az vidékre. -
Sk8erPeter
nagyúr
válasz
papa019 #2465 üzenetére
Itt már térkép is van:
http://jsbin.com/igahov/5/edit#html,live
Nem bírtam ki.
Mondjuk speciel itt azzal nem foglalkoztam, hogy azok a korábbi, jemeni adatok megjelenjenek. -
Sk8erPeter
nagyúr
válasz
papa019 #2459 üzenetére
Most arra gondolsz, hogy a felhasználó pozíciójától függően kérsz le mondjuk a WikiMapia oldaláról címeket, úgy, hogy a felhasználó pozícióját belepasszírozod a címbe?
Mert természetesen azt is meg lehet csinálni, akár gombnyomásra, pl. így is átadhatod a címbe változóként a különböző számokat:
var
user_location = { lat : 17, lon: 49 },
json_file_path = 'http://api.wikimapia.org/?function=search&key=3C19A732-DE0DF7D4-E31566D8-713BEEA1-FF9550F8-FEAF6EBD-2C9FCAC9-2CE5F4D0&q=town&lat='+user_location.lat+'&lon='+user_location.lon+'&format=json';Most még nem néztem meg, hogyan határozod meg a felhasználó pozícióját, de készítettem egy példát, hogyan tudod gombnyomásra lekérni a pozíciókat:
http://jsbin.com/igahov/3/edit#html,liveMindjárt ránézek, hogyan határozod meg a felhasználó helyzetét.
-
Sk8erPeter
nagyúr
válasz
papa019 #2457 üzenetére
http://jsbin.com/igahov/2/edit#html,live
Itt láthatod, hogy hogyan hozod össze a HTML-kóddal. Csak ezt a jsbinen szépen el lehet különíteni.A második kérdésedet viszont nem értem, mire gondolsz azalatt, hogy a "változót csak simán beleírom". Eleve minden adatot a JSON-fájlból kapsz meg, annak tartalmát egy ciklussal íratom ki itt. Fejtsd ki egy kicsit bővebben.
-
Sk8erPeter
nagyúr
válasz
papa019 #2453 üzenetére
Szívesen!
Egy kicsit ismerni kell a jQuery-t ahhoz, hogy így tovább tudd vinni.
Természetesen sima JavaScripttel is nyugodtan megoldható, de macerásabb, a jQuery nagyon kényelmes eszközöket kínál ehhez (pl. az AJAX-os kommunikáció ezáltal brutálegyszerű).
Nyugodtan kérdezz, ha elakadtál! -
Sk8erPeter
nagyúr
válasz
papa019 #2451 üzenetére
Na, ezek szerint már vágod a Google Maps API-t valamennyire, nem?
Azt hittem, ez új, de akkor valamennyire már belementél, ez jó.Az előzőre visszatérve: ha áttekinthetően is meg szeretnéd nézni a JSON-kimenetet, akkor alakítsd átlátható formátumúra, miután ide bemásoltad a tartalmát:
http://jsbeautifier.org/Igazából ez a JSON-kimenet, amit linkeltél, elég jól áttekinthető. Szóval igazából nem rossz ez a WikiMapia.
Tulajdonképpen az oldalukon ők is Google Maps API-t használnak, szóval én eleinte egy kicsit félreértettem az eredetinek a célját.
A lényeg: nyugodtan használhatod a WikiMapiát szerintem, így jobban belekukkantva egész könnyű használni, mert igazából innen a lényeg az adatok kiszedése, a megjelenítést meg úgyis Google Maps-szel fogod, szóval visszavonom a korábbiakat, maradhat szerintem ez is nyugodtan, nem kell migrálni.
Ha segítség kell hozzá, akkor kérdezz nyugodtan.Az általad linkelt JSON-fájl alapján egy viszonylag primitív példát készítettem neked jQuery használatával, ebből jól látható, hogyan szedem ki az adatokat (aztán ez továbbvihető, az adatok alapján térkép generálható):
http://jsbin.com/igahov/edit#javascript,live
Ha bepipálod a HTML checkboxot is fölül, akkor láthatod, hogy igazából lószart sem raktam a HTML-be a nagyon szükséges dolgokon kívül, az egész HTML-tartalmat jQuery-vel generálom le, abból az adatból kiszedve, amit linkeltél.
Hátha ez segít elindulni az úton. -
Sk8erPeter
nagyúr
válasz
papa019 #2449 üzenetére
Nem kell feltétlenül saját adatbázis, én a helyedben inkább migrálnám valami normálisan kezelhető API-ra, pl. a Rolly által korábban linkelt Google Fusion tables-re, vagy valami hasonlóra. A Google nagyon jó dokumentációkat szokott készíteni a cuccaihoz, így szerintem biztos hamarabb eredményre jutnál ezzel és a Google Maps API-val, mint a WikiMapia sz@rával.
Amúgy mi az a cím, amiről megkapod azt az XML-tartalmat?
Csak hogy hogy néz ki annak a JSON-változata, azt megkukkantanám. Ha belinkeled az XML-es változatot, az is jó, elvileg átalakítható.
Akkor ha jól értem, azt a meglévő adatbázist kéne felhasználnod. Egyébként miért pont ezt, ha mindegy volt, milyen adatbázist használsz fel, csak legyen egy készen lévő? -
Sk8erPeter
nagyúr
válasz
papa019 #2443 üzenetére
Itt a dokumentációja.
Először is ha már JS-ben akarod használni, akkor a JSON-formátumot kérd le, elvileg a format paraméterrel meg tudod adni ezt is: [link]. Ahogy itt a címben hozzácsapja: [link].
A többit nem tudom, nem használtam még a WikiMapia API-t.
Új hozzászólás Aktív témák
Hirdetés
- BESZÁMÍTÁS! MSI SUPRIM X RTX 4080 16GB videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! 4TB Samsung 870 EVO SATA SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! Intel Core i7 8700K 6 mag 12 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- PS3 Játékok 1500Ft/db - RÉSZLETEK A LEÍRÁSBAN
- AKCIÓ! ASUS MAXIMUS VIII HERO Z170 chipset alaplap garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- 13-14" Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
- Gamer laptop felvásárlás Magas áron, gyorsan és egyszerűen!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged