Hirdetés

2024. június 1., szombat

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2014-02-25 10:20:57

LOGOUT.hu

JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)

Összefoglaló kinyitása ▼

Hozzászólások

(#2551) Sk8erPeter válasza Coconut's (#2550) üzenetére


Sk8erPeter
nagyúr

Megy az. Felraktam neked ide egy példát:
http://jsbin.com/axuzid/edit#javascript,html,live
Kattints először a jobb oldali panelbe, és utána nyomkodd a kurzorbillentyűket.

Bal oldalt meg láthatod a kódot.

[ Szerkesztve ]

Sk8erPeter

(#2552) Coconut's válasza Sk8erPeter (#2551) üzenetére


Coconut's
csendes tag

Ó köszönöm szépen a segítséget!:)

(#2553) Sk8erPeter válasza Coconut's (#2552) üzenetére


Sk8erPeter
nagyúr

Szívesen! :K
Nyugodtan kérdezz máskor is.

Sk8erPeter

(#2554) Coconut's válasza Sk8erPeter (#2553) üzenetére


Coconut's
csendes tag

Rendben köszönöm :)

[ Szerkesztve ]

(#2555) papa019 válasza Coconut's (#2554) üzenetére


papa019
senior tag

Hali!

Most teljesen más irányba kellene elindulnom a helymeghatározós projektben és ehhez szükségem lenne pár infóra.
Amit szeretnék csinálni/használni:
- Google Maps API v3
- Poligonok rajzolása kattintásokkal és gombnyomás vagy enter után lenne egy felugró ablak, amiben az adott poligonhoz lehetne beírni adatokat, majd egy save gomb hatására ezek a lementése egy adatbázisba

Ehhez mit érdemes használni a JavaScript mellett?
Milyen adatbázist érdemes használni?
Tud esetleg valaki ehhez hasznos tutorialt?

Üdv.: Papa

[ Szerkesztve ]

(#2556) Sk8erPeter válasza papa019 (#2555) üzenetére


Sk8erPeter
nagyúr

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.

[ Szerkesztve ]

Sk8erPeter

(#2557) papa019 válasza Sk8erPeter (#2556) üzenetére


papa019
senior tag

Az egyértelmű volt, hogy szerver oldali programozás kell.
Csak gondoltam megkérdezem, hogy mit érdemes használni.

(#2558) Sk8erPeter válasza papa019 (#2557) üzenetére


Sk8erPeter
nagyúr

Jó, én meg válaszoltam is. :D

Sk8erPeter

(#2559) papa019 válasza Sk8erPeter (#2558) üzenetére


papa019
senior tag

Köszönöm, majd valahogy nekiállok, így első látásra nem lesz egyszerű. :DDD

(#2560) Sk8erPeter válasza papa019 (#2559) üzenetére


Sk8erPeter
nagyúr

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 :D -: [.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....

[ Szerkesztve ]

Sk8erPeter

(#2561) papa019 válasza Sk8erPeter (#2560) üzenetére


papa019
senior tag

Köszönöm, sokat segítettél már csak ezekkel is. :)
Az én fő problémám az, hogy sosem használtam jquery-t, js-t és php-t sem.
Ez a félév komoly változásokat hoz ezen a területen. :))

(#2562) Sk8erPeter válasza papa019 (#2561) üzenetére


Sk8erPeter
nagyúr

Sok mindenre használhatók, érdemes megtanulni. :)
Persze még ha mester vagy a szkriptírogatásban, akkor sem fog kitakarítani a script helyetted. :DD
Egyébként szerkesztettem az előző hsz.-t, hogy egyértelműbbé tegyem a dolgot.

Sk8erPeter

(#2563) papa019 válasza Sk8erPeter (#2562) üzenetére


papa019
senior tag

Hát elég sok dologra jók, meg jó lenne csinálni egy szuper alkalmazást, csak így félév közben elég szar, mert sok a zh, stb, így erre nem nagyon van idő -> várom a nyarat. :DDD
A legnagyobb baj az, hogy egy olyan irányba mentem el (Wikimapia API), ami használhatatlan és ezt a konzulensem is most próbálta ki, ezért indulunk más irányba.
(valamiféle Wikimapi klón, csak jobban felépítve :DD ) Csak ezzel elment 5-6 hét... :S

A sok segítséget pedig köszönöm. :R

[ Szerkesztve ]

(#2564) Sk8erPeter válasza papa019 (#2563) üzenetére


Sk8erPeter
nagyúr

Szívesen!
Én meg ZH-ra való tanulás helyett állandóan fórumozom, az sem jó. :D

Amúgy az az 5-6 hét sem volt haszontalan, biztos sokat tanultál ezalatt.

Sk8erPeter

(#2565) Forza_JUVE


Forza_JUVE
aktív tag

Sziasztok!

1 kis segítséget szeretnék kérni JavaScript-el kapcsolatosan, kicsit zöldfülű vagyok ugyanis! :)

Szóval van egy AudioPlayer scriptem, ami weblapon háttérzenét csinál. Tök jól működik is meg minden, egészen addig, amíg be nem teszem abba a HTML-be, ahol használnám.
Ott is működik, megjelenés, zenelejátszás tökjó, de nem tudok rajta kattintani egy gombjára sem ... csak úgy ott van. :F
Arra viszont rájöttem, hogy a CSS-vel lehet valami "baj", mert ha a HTML <head> részéből kiveszem a <link rel="stylesheet" href="res/common.css?v=3.0.5"> sort, akkor - nyilván szétesve de - megjelenik a HTML oldal, és a tetején az AudioPlayer kattintható is lesz, tehát OK.

Na most olvastam vmi Modernizr scriptről a neten, ami viszont nekem kínai, de a HTML-ben a Doctype alatt van egy ilyen: <html lang="hu" class="no-js">
Lejjebb a <head> részében futtatja is ezt a scriptet:
<script src="res/modernizr-2.0.6.min.js"></script>

Csak sejtem, hogy itt lehet a kutya elásva, de nem tudom a megoldást. Esetleg a CSS-ben kell valamit átírni?

Segítsetek pls!

Köszi előre is!!! :R

(#2566) Forza_JUVE


Forza_JUVE
aktív tag

időközben kiderült, hogy a fenti jelenség Firefox 11.0 alatt van jelen, IE 8 alatt jól működik.

(#2567) Peter Kiss válasza Forza_JUVE (#2565) üzenetére


Peter Kiss
senior tag
LOGOUT blog

A Modernizr egy feature detector önmagában, olvass utána az oldalán. Btw, zene egy weboldalon nagyon nem jó ötlet, benne van a top 10 webes hülyeségben (a.k.a. amit a felhasználók gyűlölnek).

(#2568) Forza_JUVE válasza Peter Kiss (#2567) üzenetére


Forza_JUVE
aktív tag

Tudom, én se csípem ha vhol kéretlenül megszólal valami ... de ezt szeretném kipróbálni ... saját gyártású weblap, aztán gondoltam hülyéskedek 1 kicsit. :)

(#2569) Sk8erPeter válasza Forza_JUVE (#2565) üzenetére


Sk8erPeter
nagyúr

Melyik ez az AudioPlayer?
Én azt javasolnám, hogy használd a nagyon jól testreszabható jPlayert, ez elvileg cross-browser módon működik, legalábbis elég sok böngészőre optimalizáltak, IE-re is.
Ahogy a linkelt példában látható, valami olyasmi nagy gombot tegyél be, hogy a felhasználó MINDENKÉPPEN le tudja állítani a zenét - de még jobbat mondok: csak tedd be a lejátszásra szolgáló gombot, de NE szólaltasd meg automatikusan a zenét. Hadd döntse el a felhasználó, egyáltalán szeretne-e zenét hallgatni, és ha igen, akkor mikor induljon a lejátszás!
Tehát nem muszáj kiszedned a zenehallgatási lehetőséget, de add a felhasználó kezébe a döntés jogát, mert azt szereti. Sokkal jobban értékelem én is az olyan oldalakat, ahol én dönthetem el, hogy kíváncsi vagyok-e az oldal tulaja által fontosnak tartott zenékre.

[ Szerkesztve ]

Sk8erPeter

(#2570) v2izzy


v2izzy
tag

Szerintetek hozzá lehet jutni valahogy egy böngészőben az általa ismert HTML tagek nevéhez valahogy, például egy tömb formájában?

http://flic.kr/ps/MuuJU | @gerhard_berger | https://github.com/gerhardberger

(#2571) Speeedfire válasza v2izzy (#2570) üzenetére


Speeedfire
nagyúr

XMLDom?

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#2572) Sk8erPeter válasza v2izzy (#2570) üzenetére


Sk8erPeter
nagyúr

Hű, hát ez egy jó kérdés. Most hirtelen nem jut eszembe ilyenre megoldás, de egyébként mire kellene ez neked konkrétan?

Plusz kíváncsiságból: milyen tagre akarnál esetleg tesztelni, amit egyik vagy másik böngésző nem támogat (úgy értem, pl. mit nem támogat adott böngésző, amire neked szükséged lenne)?

[ Szerkesztve ]

Sk8erPeter

(#2573) v2izzy válasza Sk8erPeter (#2572) üzenetére


v2izzy
tag

Hát már régebben szerintem linkeltem, egy ilyen kis HTML kód generáló modulomhoz. Mert most ugye van egy tömb amibe összegyűjtögettem úgyahogy a tageket, de így azért mégsem az igazi. :)
Amúgy lehet teljesen, de majd meg látjuk újra írom az egész modult, mert most csináltam egykét tesztet és úgy tűnt ha DOM-os függvényeket (createElement, appendChild stb) használok, akkor gyorsabb (ti is mondhatnátok véleményt ha van tapasztalat (most csak egy objektumból generálok le egy stringet és azt illesztem be)). Szóval ilyen függvényekkel hoznám létre a HTML-t.
Nézegettem, és ugye a a createElement az bármilyen taget legenerál, de ha nem ismert az element akkor a visszaadott objektum HTMLUnknownElement típusú, viszont ha valami ismert, akkor HTML HTMLDivElement például. Tehát ezért is gondolom, hogy valamilyen módon benne vannak a létező tagek (meg hát amúgy is benne kellene lennie azért :) ), de jó lenne valahogy elérni őket.

Speeedfire: ismerem, de mint fent írtam még nincs megoldásom. :)

[ Szerkesztve ]

http://flic.kr/ps/MuuJU | @gerhard_berger | https://github.com/gerhardberger

(#2574) Sk8erPeter válasza v2izzy (#2573) üzenetére


Sk8erPeter
nagyúr

Igen, ezt linkelted, de igazából ehhez nem nagyon értem, miért kellene neked a komplett lista.
Azt meg nem tudtam, hogy stringből generálod le, és nem mondjuk egy document.createElement segítségével (nem néztem meg a kódot), pedig az lenne a logikus.
Amúgy most hirtelen nem jut eszembe, mi az a DOM-elem, ami nem szokott működni, mondjuk ez nyilván böngészőfüggő, ergo IE-ben tuti csomó nem megy, de Chrome-ban ha csinálok egy ilyet:
document.createElement('asd');
Akkor létrehozza ezt:
<asd></asd>
Pedig ez nem egy "valid" tag a szokványos W3C-s DTD-k szerint - de miért ne lehetne ez teljesen valid egy saját DTD szerint?

Mi ad vissza HTMLUnknownElement típust?
Ha azt ad vissza, akkor miért nem dobsz vissza egyszerűen egy hibaüzenetet, hogy a megadott DOM-elem valamilyen oknál fogva nem megfelelő, adjon meg mást?

Sk8erPeter

(#2575) Sk8erPeter válasza v2izzy (#2573) üzenetére


Sk8erPeter
nagyúr

Még annyit, hogy még mindig nem látom, hogy lenne bármilyen konkrétan kipróbálható kód is az oldaladon, ezért csináltam neked egyet kb. 2 perc alatt (csak azért mondom, mert nagyon nem árt egy ilyen demo):
http://jsfiddle.net/Sk8erPeter/Pm6pg/
Esetleg készíthetnél egy jsFiddle-accountot, és csinálhatnál saját neved alatt egy ugyanilyen demót, és belinkelhetnéd a GitHubos oldalra, hogy élesben is kipróbálható legyen.
Egy JSLintet ott a jsFiddle-felületen érdemes lenne legalább ráereszteni, és aszerint validdá tenni a példakódot és magát a "könyvtárat"/modult egyaránt.

Sk8erPeter

(#2576) v2izzy válasza Sk8erPeter (#2574) üzenetére


v2izzy
tag

A komplett lista azért kell mert akkor tudom a prototypejába betenni az alap objektumnak a függvényeket (.div(), .span() stb).
Mikor elkezdtem csinálni, akkor még nem nagyon ismertem a DOM-ot, aztán így maradt eddig. :)
Nekem nem az a gondom, hogy nem valid tagokat akarnak megadni, azzal semmi gond (most is van benn egy addTag fn. hogyha valakinek van valami mása. Csak azt írtam, hogyha pl. kiiratod, hogy:
console.dir(document.createElement('asd'))
akkor a visszakapott objektum típusa HTMLUnknownElement
console.dir(document.createElement('div'))
akkor HTMLDivElement.
Ezzel csak azt akartam mutatni, hogy a valid tagok külön vannak kezelve, tehát valahol el vannak tárolva, hogy mik validok. De ez nem olyan lényeges, mivel ettől függetlenül is biztos el van tárolva. :))

Lehet kellene csinálni egy jsFiddle-t, majd megnézem holnap, meg a jsLint-et is. Köszi!

http://flic.kr/ps/MuuJU | @gerhard_berger | https://github.com/gerhardberger

(#2577) Karma válasza v2izzy (#2576) üzenetére


Karma
félisten

Ez a "valahol" a user agent (böngésző) implementációjában van... Nem hiszem hogy elérhetővé kéne tenni a JS motor felé.

Manuálisan a HTML5 specifikációban meg tudod nézni, hogy a különböző tagekhez milyen DOM interface osztály tartozik (példa), de automatizálni...

“All nothings are not equal.”

(#2578) Forza_JUVE válasza Sk8erPeter (#2569) üzenetére


Forza_JUVE
aktív tag

OK! Köszi, igazad van ... így teszek majd! :)
Kösz a segítséget. Az általam használtnak nem tudom fejből a nevét ... de egy egyszerű kis dolog ... megnézem az általad ajánlottat.

Üdv.

(#2579) Sk8erPeter válasza v2izzy (#2576) üzenetére


Sk8erPeter
nagyúr

"A komplett lista azért kell mert akkor tudom a prototypejába betenni az alap objektumnak a függvényeket (.div(), .span() stb)."
Nem néztem meg a kódodat, és biztos most nehézkes a felfogásom, de most még mindig nem jön át, mi az oka, hogy a createElementes megoldás miért nem elegendő ehhez (tehát ha valaki divet szeretne kreálni, akkor document.createElement('div');). Mit hagyok ki? Mihez kell a komplett lista konkrétan?

Példakódra rátérve: én amúgy nem értem, a megfelelő sorok végére miért nem teszel pontosvesszőt. :D Sokkal áttekinthetetlenebb így a kód, jó is, hogy a JSLint szól érte.
A korábbi kódot, amit az oldaladról szedtem, elég gyorsan JSLint-validdá lehetett tenni:
http://jsfiddle.net/Sk8erPeter/Pm6pg/1/
Így már szerinte is okés (a class-ból 'class' lett, különben nem jó, mert foglalt névre hivatkozik a JSLint).
Példa még mindig nincs a GitHub-oldaladon. :D
Amúgy ha bejelentkezel a JSFiddle-oldalon, és ennél a kódnál rámész, hogy "Fork", akkor máris a Te neved alatt fog megjelenni. :)

=========

(#2578) Forza_JUVE :
OK, nincs mit, ha kell segítség, akkor másold be ide a kódot, hogy mivel próbálkoztál, és segítünk.

[ Szerkesztve ]

Sk8erPeter

(#2580) v2izzy válasza Sk8erPeter (#2579) üzenetére


v2izzy
tag

Itt egy példa. Látod, ha itt nem tudnám előre a neveket, akkor nem lehetne a függvényeket megcsinálni a megfelelő névvel az objektumba.

http://flic.kr/ps/MuuJU | @gerhard_berger | https://github.com/gerhardberger

(#2581) Sk8erPeter válasza v2izzy (#2580) üzenetére


Sk8erPeter
nagyúr

Jaaaaaa, értem, jó, így már felfogtam.
Szerintem erre nincs jobb, mintha stringként átadod úgy, ahogy a jQuery-nél lehet, pl. img tag dinamikus létrehozására a jQuery topicban épp mutattam példát: [link]
valahogy hasonlóan kellene megoldanod, persze akkor alternatív utat kell választani, nem ilyen "függvényszerűen" lehet meghívni (pl. div() ).
jQuery-kódban pl.:
// If a single string is passed in and it's a single tag
// just do a createElement and skip the rest
.....

Aztán a végére eljutsz oda, hogy felfedezed a spanyolviaszt, és készítesz egy új jQuery-t. :DD

Sk8erPeter

(#2582) v2izzy válasza Sk8erPeter (#2581) üzenetére


v2izzy
tag

Ismerem a jQuery-nek ezt a funkcióját természetesen, de pont ez volt a célom vele, hogy egyszerűbben és szebben lehessen leírni a html-t js-be. És persze hogy elmehetnék jq-s irányba és string-ként átadhatnám, de pont nem ez a célom. A jQuery természetesen ezt csinálja, mert nekik nem ez a lényeg, hogy minden tag-hez külön fgv. stb. Pont ezért csinálom így, hogy valami pluszt adjon ez mondjuk a jQuery-shez képest. (Bár azért világmegváltó terveim nincsenek vele, de tanulásnak jó meg azért érdekesnek találom :) )

És ha összehasonlítod:

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');

Ezzel:

huk('#container')
.img({
'id': 'myImage'+img_index,
'src': 'http://doc.jsfiddle.net/_downloads/jsfiddle-logo.png',
'alt': 'JSFiddle logo',
'title': 'JSFiddle logo',
'width': 250
})
.append();

Szerintem utóbbi szebb (de lehet mert én írtam :DDD )

Meg azért nagy erőforrást nem emészt fel szerintem, minden tag-hez egy function pointert rendel, tehát nem klónozza a függvényeket a tag-ekhez. És akinek meg a custom tag kell (az esetek nagyon kis százaléka), annak meg arra is van lehetősége. Meg például a .list() fgv-t különösen hasznosnak találtam sokszor.

[ Szerkesztve ]

http://flic.kr/ps/MuuJU | @gerhard_berger | https://github.com/gerhardberger

(#2583) papa019 válasza Sk8erPeter (#2560) üzenetére


papa019
senior tag

Olyat lehet valahogy művelni, hogy Javascript function-ből hívok meg jQuery Ui Dialog-ot? :B
Jelenleg ott állok, hogy megrajzolom a polygont kattintásokkal és amikor belekattintok a közepébe, akkor a click listenert megszünteti > nem rajzolja tovább a polygont, illetve meghív egy függvényt, aminek átadja a polygon pontjait.
Na most én ebből a függvényből szeretnék meghívni valami felugró Dialogot, amit még te mutattál.
Ezt hogyan lehet véghezvinni? :)

Ide bemásoltam a kódot:
[link]

(A végén a new_place függvénytől kezdődik a lényeg, amire most rákérdezek.)

[ Szerkesztve ]

(#2584) Sk8erPeter válasza papa019 (#2583) üzenetére


Sk8erPeter
nagyúr

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

(#2585) Sk8erPeter válasza v2izzy (#2582) üzenetére


Sk8erPeter
nagyúr

"A jQuery természetesen ezt csinálja, mert nekik nem ez a lényeg, hogy minden tag-hez külön fgv. stb."
Ja, hanem az a célja, hogy lehetőleg a legtöbb tagre működjön, és ne kelljen a böngészőtől megkapni arra vonatkozó komplett listát, hogy milyen tageket támogat. :)
Persze ha összegyűjtöd szorgalmas munkával a tagek többségét, aztán belerakod egy array-be, hát oké. :P
Nekem olyan nagyon nem csúf a jQuery-s szintaktika, amit mutattam.
A tiédnél annyi a különbség, hogy valóban jobban "szétválik", bár pár karakternyi különbség van, tehát szerintem lényegében irreleváns.

Amúgy nyilván van haszna a pluginednek, félre ne értsd, most én nem akartam egy csöppet sem szembeállítani! :N Jelen esetben csak azt vizsgálgattuk, hogy vajon van-e értelme minden tagről komplett lista alapján létrehozni egy hozzá tartozó "függvényt".

Sk8erPeter

(#2586) papa019 válasza Sk8erPeter (#2584) üzenetére


papa019
senior tag

Ha az alábbi függvénnyel hozzáadom a points változóhoz a sarokpontokat:
function addPoint(e) {
points = add_place.getPath();
points.push(e.latLng);
}

Akkor az alábbi függvénnyel miért csak a pontok sorszámát adja vissza? (0,1,2,3,4...stb.)

var additionalData = ' ';
$.each(points, function(val){
additionalData += val;
});

Hogy tudom kiszedni belőle a lat és lng paramétereket?

[ Szerkesztve ]

(#2587) Karma válasza papa019 (#2586) üzenetére


Karma
félisten

Mert a jQuery.each függvénynek nem olvastad el az interfészét elég alaposan. A callback első paramétere az index, második helyen jön a tényleges érték.
function(val) helyett legyen function(idx, val) és láss csodát :)

[ Szerkesztve ]

“All nothings are not equal.”

(#2588) papa019 válasza Karma (#2587) üzenetére


papa019
senior tag

Köszönöm. :)
De ha átírom így:

$.each(points, function(key,val){
additionalData += val;
});

Akkor meg nem ad vissza értéket ("undefined").

(#2589) Sk8erPeter válasza papa019 (#2588) üzenetére


Sk8erPeter
nagyúr

Tedd bele a jsbines kódba, hogy mivel próbálkozol, és mentsd el, majd dobd be ide a linket, ne nekünk kelljen már kitalálni. Ott tudjuk debuggolni is.
Láttad a jQuery UI Dialogos megoldást? Mert arra nem igazán reagáltál...

Sk8erPeter

(#2590) papa019 válasza Sk8erPeter (#2589) üzenetére


papa019
senior tag

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.

Az ajaxPost.php tartalma, bár ez sztem nem szükséges hozzá:

<?php

include 'config.php';

$name = $_POST['name'];
$description = $_POST['description'];
$address = $_POST['address'];
$wikipedia = $_POST['wikipedia'];
$points = $_POST['points'];

$DB->Query("INSERT INTO places(name,description,address,wikipedia,points) VALUES('$name','$description','$address','$wikipedia','$points')");

És annyit szeretnék, hogy a form adatait már serializáltam postolom a php-nak, be is teszem vele az adatbázisba, de a paraméterként kapott polygon-pontokat is ezzel együtt akarom küldeni és sehogysem tudom megoldani... Órák óta keresgélek a neten. Valami az each-el van, amikor ki akarom szedni a points változóból a pontokat... :(

Valamiért js-binen az egész nem megy, pedig nálam minden fut, csak nem tudom menteni a pontokat... :S

[ Szerkesztve ]

(#2591) Sk8erPeter válasza papa019 (#2590) üzenetére


Sk8erPeter
nagyúr

"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... :D

"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

(#2592) papa019 válasza Sk8erPeter (#2591) üzenetére


papa019
senior tag

Ne haragudj kezdő vagyok, sosem írtam még semmilyen JS, jQuery és PHP kódot.
Nem vagyok hülye, hogy azt várjam, hogy szerver oldali kód fusson. :W :W :W Én a felugró ablakokra és a funkciókra gondoltam, hogy nekem nem mentek...

Elképzelésem nincs, hogy mit jelent az escapelés...
Tutorialok alapján próbálom összeeszkábálni a programot, nem tehetek róla, hogy szar az egész úgy, ahogy van...

Észre sem vettem, hogy a JSBint nem linkeltem be. [link] :U

[ Szerkesztve ]

(#2593) Sk8erPeter válasza papa019 (#2592) üzenetére


Sk8erPeter
nagyúr

Nyugalom... :U
Amúgy én nem "haragszom". :D 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);

[ Szerkesztve ]

Sk8erPeter

(#2594) papa019 válasza Sk8erPeter (#2593) üzenetére


papa019
senior tag

Ne haragudj, feszült vagyok az utóbbi pár napban, mert domborítani kellene ezzel a progival és mint látod, nem igazán megy... :/

Van valami ötleted arra a hibára, amit írtam?
Hogy a Submit előtt a pontok kiszedésében mi lehet a hiba? :B

Illetve mondtad, hogy escapelni kell, vagy mit, ehhez tudsz valami linket küldeni? Akkor nekiülök és próbálom csinálgatni tovább. :R

(#2595) papa019 válasza papa019 (#2594) üzenetére


papa019
senior tag

Megtaláltab a hibát:
Ciklussal nem lehet csak úgy kiszedni az adatokat, mert nem tömbben tárolódnak a pontok.
Az objektumra meghívott getAt(i) függvény visszaadja az i-edik pontot.

(#2596) Sk8erPeter válasza papa019 (#2595) üzenetére


Sk8erPeter
nagyúr

Í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.

[ Szerkesztve ]

Sk8erPeter

(#2597) papa019 válasza Sk8erPeter (#2596) üzenetére


papa019
senior tag

Köszönöm, majd ez alapján próbálom javítani a kódom. :R
Jelenleg ott állok, hogy a poligonok és hozzájuk az információk hozzáadása már működik ezzel az alapvető és egyáltalán nem hibakezelt módszerrel, számomra már ez elég nagy előrelépés...
Ez a jQuery meg egy csoda. :C

(#2598) Sk8erPeter válasza papa019 (#2597) üzenetére


Sk8erPeter
nagyúr

Hát nagyon komoly dolgokat lehet vele csinálni viszonylag egyszerűen, az biztos.
Amúgy nincs mit, majd szólj itt a topicban, ha valami nem megy!

[ Szerkesztve ]

Sk8erPeter

(#2599) Dave-11


Dave-11
tag

Sziasztok! El szeretnék kezdeni Javascriptet tanulni, mert HTML + CSS már megy, PHP-val is elég jól állok már, és kicsit bővíteni szeretném a tudásomat, hogy majd egy magasabb szintű honlapot is el tudjak készíteni.
Nem akarom lekicsinyíteni a Javascriptet, de ahogy így nézegettem egész könnyűnek, legalábbis nem túl nehéznek tűnik, de javítsatok ki ha tévedek :D Nektek mi a véleményetek róla? Mi a legjobb dolog, amit már eddig elkészítettetek vele? Illetve általában mire használják?

:D Semmi :D

(#2600) Sk8erPeter válasza Dave-11 (#2599) üzenetére


Sk8erPeter
nagyúr

Feladatfüggő, hogy mennyire könnyű vagy nehéz...
Ha egy DOM-ban lévő elem háttérszínét akarod megváltoztatni, az tipikusan az elég egyszerű feladatok közé tartozik...

"általában mire használják?"
Általában kliensoldali programozásra. :D
Leggyakoribb felhasználási területe a weboldal megjelenítésének és működésének felhasználóbarátabbá tétele kliensoldali kódokkal, formvalidálás, elemek elrejtése-megjelenítése, stb. Plusz AJAX-ozás, táblázatok legenerálása, stb. Aztán lehet bonyolítani.
Most csak nagyon röviden, leegyszerűsítve.

[ Szerkesztve ]

Sk8erPeter

Copyright © 2000-2024 PROHARDVER Informatikai Kft.