- Mesterséges intelligencia topik
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Folyamatosan hazudott a bitcoin állítólagos feltalálója
- Vírusirtó topic
- Windows 11
- Call center-forradalom: AI alakítja át az ideges telefonálók hangját
- Milyen routert?
- ASUS routerek
- HBO Max & OD topic
- Sarokba szorította a Huawei az Apple-t Kínában
Új hozzászólás Aktív témák
-
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? -
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.”
-
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
"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
-
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
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
-
-
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
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 ]
-
Sk8erPeter
nagyúr
items.push(item);
Ezzel lényegében pont azt csinálod, ami a baj a kóddal.
Nem adtál meg tömbindexet, hogy melyik elemét szeretnéd betenni az item-nek, ezért minden each-lépésben a teljes item tömböt bele fogja tenni.
Index alatt arra gondolok, hogy pl. van egy i indexed egy for ciklusban, és ott megadhatod így, melyik elemet rakod bele:
items.push(item[i]);
Ekkor az i-edik elemét teszed bele az itemnek.Itt szerintem - bár nem próbáltam ki - ez lenne a jó megoldás:
items.push(item[key]);
Várj, az sem jó, hogy a key kétszer van használva, az egyik each-nél cseréld le, tehát valahogy így (nem tudom, ez jó-e, próba nélkül írom):
var items = new Array();
var item = new Array();
$.each(data, function (key, val) {
//items.push('<li id="' + key + '">' + val.id + ',' + val.name + ',' + val.description + ',' + val.address + ',<a href="http://hu.wikipedia.org/wiki/' + val.wikipedia + '" target="_blank">Wiki link</a>,' + val.points + ',' + val.category + ',' + val.parent_area + ',' + val.parent_has_parent + '</li>');
$.each(val, function (inner_index, inner_element) {
item.push(inner_element);
});
items.push(item[key]);
});Sk8erPeter
-
Sk8erPeter
nagyúr
Itt van ilyen geometry-s példa, a forráskódba belekukkantva így pakolja be a <script> taget:
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>Itt a libraries=geometry rész az érdekes. Nem lehet, hogy ez is kéne ahhoz, hogy működőképes legyen?
====
(#923) Jim-Y : majd leszoksz róla.
===
(#924) Karma : "(Vagy inkább a jQuery UI-t használni.)"
Én ehhez ragaszkodnék. Annyira sok minden lehet lekezeletlen saját kódban, hogy sztem jobb az embernek nem szívatnia magát, ha van egy ilyen alapvetően igényesen elkészített plugin.Sk8erPeter
-
Sk8erPeter
nagyúr
z-index=1900;
Ilyen CSS-ben nincs.
De ilyen van:
z-index:1900;
(egyenlőségjel helyett kettőspont)
jsFiddle-re relatív URL-eket hiába teszel, nem fog menni. A teljes HTML-doksit sem érdemes, csak a <body>-ban lévő részt.
Ha a <body>-ban <script> tagek között van valami kód, akkor azt meg pakold már át a JS-részre, arra való. Amúgy is, a saját HTML-oldaladon külön JS-fájlba kellene rakni ezeket a kódokat.Mivel itt még initialize() függvényed sincs itt, annak tartalmát nem tudom kitalálni, meg a többi dolog sem tudom, hogy kéne, hogy működjön nálad, így ezzel a linkelt kóddal egyáltalán nem tudok mit kezdeni. Azért linkelhettél volna olyat, aminek van valami köze a működéshez. Tudom, hogy sietős, meg minden, de ha gyors segítséget szeretnél, akkor azért jusson el valameddig a felrakott kód, legalább a megjelenítésig...
===============
(#935) papa019 :
contextmenuDir = document.createElement("div");
contextmenuDir.className = 'contextmenu';
contextmenuDir.innerHTML = a;
HELYETT jQuery-ben:var $contextmenuDir = $("<div/>", {
"class": 'contextmenu',
html: a
});már Karma is mondta, de
<div class='context'>Adatok szerkesztése<\/div>
HELYETT
<div class='context'>Adatok szerkesztése</div>Tehát a /-t nem kell escape-elni.
Mondjuk én speciel rühellem az aposztrófot is a HTML-attribútumoknál, szerintem "szebb" a rendes idézőjel, de ez már az én hülyeségem.[ Szerkesztve ]
Sk8erPeter
Új hozzászólás Aktív témák
- RAM topik
- Mesterséges intelligencia topik
- Drágábban indíthat az új iPhone SE
- Dacia topic
- CADA, Polymobil, és más építőkockák
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Filmvilág
- Senua’s Saga: Hellblade II teszt
- Skoda, VW, Audi, Seat topik
- További aktív témák...
- -70% HP EliteBook 850 G7:i7 10610U,32GB RAM,512GB SSD,15.6" FHD,vil.MAGYAR numeri.bill,WWAN 4G,Win11
- ASUS TUF Gaming GeForce RTX 4070 Ti 12GB
- Hama Ultraslim Fali konzol (TV)
- ÉRKEZETT Legújabb Bontatlan Új M2 IPAD PRO 2022 12,9 128GB - 256GB Wi-Fi Azonnal DEÁK TÉRNÉL Átvehe
- Női városi bringa (Sierra City)
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen