- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
- Sgr_A: Számítógépeim aktualizálása cseréje
- Geri Bátyó: Agglegénykonyha 2 – Főzés: szabályok, vagy szabadság?
- Imilenni: Egy kis depi, remélem elfér itt :) 2#
- Gurulunk, WAZE?!
Új hozzászólás Aktív témák
-
Male
nagyúr
válasz
Sk8erPeter #1099 üzenetére
Hogy fizikailag mi ér oda, arról nem tudok meggyőződni, ezért írtam így (lehet valami szűrő előtte a tárhelyen), de a PHP már nem kapja meg, mivel az isset szerint nincs.... szóval a mintha helyett akkor azt írom, hogy nem érkezik meg
A mit kell elpostolni... az egy kupac tömörített adat, ennél pontosabban nem tudom hogy írjam le, ottvan a PHP rész ami ezt összeállítja egy tömbből (a tömbben stringek vannak, több helyről az adatbázisból... egyébként könyvek, azok leírásai, adatai, a hozzá tartozó kiadóké, stb. Pár 10KB-ról van szó max.... a tesztben most csak ~ 300 Byte a tömörítés után).
Említette, de írtam is rá, hogy a post nem távoli szerver felé megy, ugyhogy ez nem lehet a gond.
Azt pedig megtudtam, hogy érkezik hozzá a postból. Ottvan a JS részen látod, mit postol... mittesz, ajx és hozzaadando van a postban felsorolva, az első kettő megérkezik a harmadik nem. -
Sk8erPeter
nagyúr
Hmm, nem tom, a MIME-type témában akkor melyik az igaz, de akkor lehet, hogy úgy van, ahogy írod.
"Alerttel oldottam meg, és az alapján a válasz rendesen megérkezik, a gond, hogy utána a postnál mintha nem menne el :S"
Ezek helyett a "mintha" szavak helyett mi lenne, ha meggyőződnél róla?Pont a hibakezelés egyszerűsége miatt ajánlottam a $.ajax() függvényt. A console.log-ot pedig azért ajánlottam, mert jóval értelmesebben lehet vele kiíratni az adatokat, pl. ha objektum érkezik (és az fog), akkor elég ezzel kiíratni a kapott választ, és kibontható formában tekintheted meg a konzolon (F12, vagy Ctrl+Shift+I). Akkor láthatod, minden szükséges rész megvan-e.
Itt mutat példát a $.post()-tal való válasz- és hibakezelésre:
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.post("example.php", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
// perform other work here ...
// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });Szerintem ez jóval ocsmányabb, mintha "egyben" lenne az egész az $.ajax() függvényben.
Mindenesetre használd ezeket a hibakezelő függvényeket is, hogy megtudd, hogy hol lehet potenciális hiba.
Meg ha nem mondod meg, mit kell elpostolni, akkor nem tudunk segíteni.Ezenkívül martonx már említette, hogy a POST-metódussal parák lehetnek távoli szerver felé, bár meg kéne tudnod, hogy egyáltalán a szerverhez érkezik-e bármi, pl. úgy, hogy naplózod a szerveren a bejövő kéréseket debuggolás erejéig (pl. adatbázisba vagy fájlba, most a lényeg szempontjából mindegy).
-
Male
nagyúr
válasz
Sk8erPeter #1097 üzenetére
"Akkor már legyen "rendes" int"
Igaz... viszont néhol betűt is tartalmaz a hibakód, így egységesen írtam... most, hogy az az egyetlen érték string vagy int, nagy jelentősége nincs."jobban járnál a sima $.ajax()"
Lehet, bár elvileg ekvivalens a kettő. A getJSON-nel egyszerűen nem működött, soha nem érkezett meg a válasz, pedig elvileg jól írtam meg... így hagytam a fenébe, és megírtam sima gettel. Viszont ez a rész elvileg jó."szerintem az 'egybenminden'-nél nem nagyon van értelme, hogy json_encode-old is, ha a végén úgyis json_encode-olod az egészet."
Mivel egy tömböt tömörítek, ami stringet vár bemenetnek, így muszáj előtte is egy json_encode."Az application/javascript NEM jó MIME-type, ez a jó:
application/json"JSON-nél valóban az kell, amit te írsz, de JSONP-hez úgytudom az kell, amit én írtam. katt
"A debuggoláshoz használd a console.log()-ot"
Köszi!
Alerttel oldottam meg, és az alapján a válasz rendesen megérkezik, a gond, hogy utána a postnál mintha nem menne el :S"lekérsz adatokat a másik szervertől, majd miután ez megtörtént, azonnal vissza is küldesz adatokat ugyanannak a szervernek"
Annak valóban nem lenne értelme, de én egy másik szerverről kérek le adatokat, és a sajátnak küldöm utána tovább. -
Sk8erPeter
nagyúr
$data['hiba'] = '0';
Ennek a '0' stringnek semmi értelme. Akkor már legyen "rendes" int, vagy boolean érték (true/false).Ezenkívül szerintem a kicsit nehézkesebb hibakezeléssel bíró $.get(), $.post() függvények helyett komplexebb esetben jobban járnál a sima $.ajax() függvénnyel, megfelelően felparaméterezve. Szerintem legalábbis a kódban egyértelműbben néz ki. Sőt, ha már JSON, akkor miért nem használod a jQuery.getJSON() függvényt? (JSONP-re is használható, lásd a példát)
A PHP-s részre: szerintem az 'egybenminden'-nél nem nagyon van értelme, hogy json_encode-old is, ha a végén úgyis json_encode-olod az egészet.
Az application/javascript NEM jó MIME-type, ez a jó:
application/jsonA debuggoláshoz használd a console.log()-ot, pl.:
console.log('valasz:');
console.log(valasz);A többire: olyan hosszan írtál, hogy őszintén szólva számomra már zavaros volt, hogy A és B szervernél hova küldözgeted, de az sem világos, hogy mi értelme van annak, hogy lekérsz adatokat a másik szervertől, majd miután ez megtörtént, azonnal vissza is küldesz adatokat ugyanannak a szervernek (vagy nem ugyanannak?), csak akkor már POST-metódussal. De lehet, hogy csak számomra kavarodás, nem nagyon volt kedvem még egyszer átolvasni és végiggondolni.
-
Sk8erPeter
nagyúr
válasz
TonTomika #1085 üzenetére
Megnéztem az oldalt, amit linkeltél, és ez egérkattintás esetén elvileg jól működik:
$(document).ready(function(){
$('#autosuggest-container').on('click', 'ul li', function(){
var suggested_text = $(this).text();
$('input#autosuggest').val(suggested_text);
});
});================================================
Egyébként az onkeyup attribútum használata helyett csinálhatnád így:
<input type="text" name="autosuggest" id="autosuggest" onkeyup="return autoSuggest()" value="" />
HELYETT
<input type="text" name="autosuggest" id="autosuggest" value="" />
JS-kód:
function autoSuggest() {
var autoSuggestVal = $('#autosuggest').val();
if (autoSuggestVal != '') {
$.ajax({
url: '_php/ajax/autosuggest.php?query=' + autoSuggestVal,
success: function (result) {
$('#autosuggest-container').html(result);
}
});
}
}
$(document).ready(function(){
$('input#autosuggest').keyup(autoSuggest);
$('#autosuggest-container').on('click', 'ul li', function(){
var suggested_text = $(this).text();
$('input#autosuggest').val(suggested_text);
});
}); -
Male
nagyúr
válasz
Sk8erPeter #1094 üzenetére
Nyilván túloztam, részben erre is ment a smiley
Ok, lesz majd, csak ugye elég terjedelmes az eredeti, illetve ha nem azt küldöm vissza, amit a szerver dobna, hanem egy egyszerű szöveget, akkor meg működik a tárhelyen is, tehát még az adatokon is múlhat, csak nem értem miért.
A JS-ből a lényeg:
function admin_konyv_hozzaad(ajx_konyvtar_konyv_id){
$.get(
url_diriszerver,
{mi: "admin_konyvtar_konyv" , konyvtar_konyv_id: ajx_konyvtar_konyv_id},
function(valasz){
if(valasz.hiba != '0'){
switch(valasz.hiba){
/* hibakezelés */
}
}
else{
//Tehát megvan a válasz hibátlanul... küldjük el az admin_kezelonek
$.post(
"admin_kezelo.php",
{mittesz: "hozzaad" , ajx: "1", hozzaadando: valasz.egybenminden},
function(visszajelzes){
switch(visszajelzes){
/* visszajelzés kezelés */
}
}
);
}
},
"jsonp"
);
}A küldő oldalon a PHP-ból a lényeg:
$data['hiba'] = '0';
$data['egybenminden'] = utf8_encode(gzcompress(json_encode($tomb),1)); //A $tomb amit összeszed minden féle szükségest az adatbázisból
header('Content-type: application/javascript; charset=utf-8');
print sprintf('%s(%s);', $_GET['callback'], json_encode($data));A fogadó oldalon pedig ha egyszerűen a isset($_POST['hozzaadando']) false-ot ad... (az isset($_POST['ajx']) és az isset($_POST['mittesz']) az true).
-
Sk8erPeter
nagyúr
"én abban a verzióban onclick-ekkel írtam be [....] nomeg itt erre ugrani szoktak, hogy nem szép megoldás"
Nem "ugrani" szoktunk, hanem jelezni, hogy ez úgy nem könnyen karbantartható, meg szemantikai keveredés a kódban.A JSONP-s kérdésre meg igen nehéz lenne megmondani a tutit kód nélkül (ahogy általában, itt sem ártana legalább egy példakód, hogy mit használsz...).
========
(#1088) Lacces : közben PHP topicban kitárgyaltuk, hogy az allow_url_fopen valszeg false-ra van állítva a szerveren, amin próbálkozol.
-
Male
nagyúr
válasz
martonx #1092 üzenetére
A post már nem cross domain rész, ezt lehet, hogy nem írtam le pontosan. Tehát a JS kód a fogadó ("B") oldalon fut, így az adat megszerzése a cross domain, a postolás már domainen belül megy utána. Amit elpostol, annak az egyik fele rendben is van (hogy mit tegyen vele), csak pont az eredmény nem, az mintha eltűnne
-
Male
nagyúr
válasz
TonTomika #1090 üzenetére
Macerásabb, mint egy kész, de ebből tanulsz legalább... részben én is ezért csináltam magamnak. (én abban a verzióban onclick-ekkel írtam be, hogy másolja az értéket, és zárja be a listát, nomeg ugorjon a következő mezőre.... viszont akkor még nem használtam jQuery-t, nomeg itt erre ugrani szoktak, hogy nem szép megoldás, ugyhogy ezt csak halkan írtam ide
)
Kérdés mindenkinek
Ha viszont már úgyis írok ide.... Ti hogyan oldanátok meg, hogy az egyik weboldalról a másikra juttassatok át adatokat? Mindkét tárhelyhez, adatbázishoz van hozzáférésem, mindkettőre én írhatom a kódot. Azonban később is működnie kell ennek az áttöltésnek, amikor már csak az adatokat szolgáltató (A) szerverhez lesz hozzáférésem. Nyilvános adatokról van szó egyébként, tehát a küldő oldalon (A) nem kell semmi jogosultság ellenőrzés, a fogadó oldalon (B) pedig csak az admin felületről lehet lekérni-áttölteni, tehát ott meg a saját védelmük dolgozik.
Elsőre úgy oldottam meg, hogy a "B" oldalon lévő admin felületen JSONP-vel lekérem az adatokat "A"-tól, ellenőrzöm, hogy jó-e. Ha igen, akkor sima $.post-tal elküldöm ("B"-nek, tehát domainen belül)... ez így elvileg sima ügy.
A gond, hogy localon ez tökéletesen működik is, akkor is, ha az "A" oldal már a neten lévő valós... viszont ha mindkettő a valós helyén fut, akkor nem megy.Ami még fontos lehet, JSONP-vel két érték érkezik. Az egyik egy hibakód, ezzel ellenőrzöm, hogy jó-e ami megérkezett, vagy történt valami hiba. A másik pedig maga az eredmény, ami tömörítve jön (egy pár tíz KB-os tömb, jsonencode, majd sima gzcompress, majd egy utf8encode után). A $.post-nál már csak az eredményt küldöm el (és hogy mit kezdjen vele).
Tesztelgettem, próbálgattam. Ha kiíratom az eredmeny-t, miután megjött "A"-tól, de még a $.post előtt, akkor látszólag oké. Viszont a $.post ahová küldi PHP-t, ott meg mintha nem érkezne meg... isset($_POST['eredmeny'])-t nézek, és false-ot ad (a mit kezdjen vele viszont megérkezik rendben).
Ha a tömörített cucc helyett csak egy C betűt küldök vissza eredményként, az szépen végig is megy, megérkezik a végső céljához...Mi a fene lehet a gond? Egyszerűen nem értem, mert "A"-tól biztos rendben van ami érkezik, hiszen "B"-t localon futtatva, de a valós "A"-tól kérve az adatokat minden rendben működik. A JS kódot ugyan az a gép-böngésző futtatja mindkét esetben, így ezt is kizárnám... a "B" oldalon meg hát... olyan nincs, hogy egy sima isset() localon jól működik, a szerveren meg nem... mert ha kb ennyit hagyok a kódban, akkor is azt mondja, hogy nem kapta meg.
A szerveren lehet valami korlátozás arra nézve, hogy mit lehet post-olni neki, és ha ettől eltérek, akkor eldobja, vagy mi a fene?(Jah, hibaüzenet természetesen sehol sincs, szimplán nem érkezik meg a post-olt tartalom)
-
TonTomika
aktív tag
válasz
Sk8erPeter #1087 üzenetére
Nem gondoltam, hogy szívás. Kitaláltam, hogy ez egy jó cucc, kéne egy ilyet csinálnom, amit később elővehetek ha kéne valamibe. Kerestem rá egy tutorialt, ez videós volt, gondoltam tanulásnak megteszi. De nem.
Megnézem ez a cuccot amit írtál, de ezen még át kell rágnom magamat, a PDO-ról pl még életemben nem hallottam. Köszi egyébként!
Male: hmm akkor jól gondoltam, szerintem ezt is megnézem, tekintve, hogy már kb majdnem készen van.
-
Lacces
őstag
válasz
Sk8erPeter #1086 üzenetére
igen azt használok, de erről a fájlról van szó itt. Rátudnál már majd nézni?
Pedig az elején még elég lelkes voltam, gondolkodtam azon is, hogy megírom logout-ra egy mini kis leckeként.
Gépen babán megy, tárhelyeken már nem.TonTomika: Hallgás a mesterre! Én is próbálkoztam saját megoldással és csak félig volt jó... amit ajánlott Sk8erPeter, az nagyon jó.
-
Sk8erPeter
nagyúr
válasz
TonTomika #1085 üzenetére
Minek szívatod magad ilyen egyedi tákolmányokkal? (ezektől a mysql_query()-s baromságoktól kiráz a hideg így 2012-ben... meg milyen fantasztikus hibakezelést mutat be ezzel az ... or die(mysql_error()); résszel...
)
Itt van egy jól működő megoldás:
jQuery UI Autocomplete
+ PDO és exceptionök. -
TonTomika
aktív tag
Sziasztok!
No, már megint ezzel a fránya jQuery-vel sikerült összeakasztani a bajszomat.
Szeretnék csinálni egy auto suggest keresőt, Találtam is hozzá egy egész jó tutorialt, viszont a srác elrontott benne valamit és utólag már nem írta le sehová, hogy hol a megoldás, forrásfájlok pedig nincsenek. Az egyik részére sikerült már rájönnöm, kilistázza már alul a megoldásokat, viszont ha rákattintok nem írja be az inputba.
index.php:
<input type="text" name="autosuggest" id="autosuggest" onkeyup="return autoSuggest()" value="" />
<div id="autosuggest-container"></div>itt beírja a delikvens a keresőszó egy részét, majd a következőkben megkapja a js
functions.js:
function autoSuggest()
{
var autoSuggestVal = $('#autosuggest').val();
if(autoSuggestVal != '')
{
$.ajax({
url: '_php/ajax/autosuggest.php?query='+autoSuggestVal,
success: function(result)
{
$('#autosuggest-container').html(result);
}
});
}
}ezt aztán szépen feldolgozza a php amit vissza is kapok jól.
Hol és mivel kéne kiegészítenem?
Arra tippelek, hogy az input value="" attribútumába kéne valahogyan beszúrnom azt, amire az alatta div-ben lévő <li> elemre kattintok.Itt megtekinthető
(Valahol van benne egy karakter kódolás beállítási hiba is, de még nem jöttem rá, hogy hol...elméletileg mindenhol minden utf-8-ra van állítva.)Előre is köszi a segítséget!
-
Lacces
őstag
válasz
Sk8erPeter #1083 üzenetére
Na várj, át kell akkor alakítani a fájlt, hogy megtudjak jelenítei eredményt neked:
Pölö itt van egy:
{"station":"House Station Radio ","track":"Tactics - Remedy "}
De működik, és jah, nem jPlayerben jelenítem meg, hanem egy div-en. -
Sk8erPeter
nagyúr
"Mivel automatikusan postol az ajax, ezért jó hogy benne van a cache : false?"
Nem nagyon értem a kérdést, hogy jó-e, hát ha nem akarod, hogy cache-elve legyen a kérés eredménye, akkor jó, hogy "benne van".
Jó lesz az úgy."Illetve, hogy tömböt kapok vissza a php fájltól, annak a lekezelése így elfogadható az obj-al?"
Mutass már legalább egy példát rá, hogy milyen formátumban küldöd ki a választ PHP-oldalról!setInterval("ajaxStation()",20000);
Helyett
setInterval(ajaxStation, 20000);
Így egy függvénypointert adsz át, és az jól is van úgy.$("#track_name").html(obj.track);
$("#station_name").html(obj.station);
Gondolom azt vágod, hogy ezzel semmit nem fogsz betölteni a jPlayerbe. -
Lacces
őstag
válasz
Sk8erPeter #1081 üzenetére
Hát most döbbentem... az idézőjelek
jPlayernél jaj, ne is mond, a "/"-jeleket le kellett felejeteni és csak akkor volt jó, ha az .sw fájlnak csak a mappát adtam meg és kész. Jah és a tanácsolt wmode-ot ki kellett ütni.
+ htaccess-t beállítaniés ezeken áthaladva ilyen sorrendben, a htaacces beállítása után, már babán ment
Ajax hívás:
Az ajax függvénynek bizonyos időközönként (20 másodperc) automatikus postolást kell végezni az egyik php fájlhoz, ahol művelet hajtódik végre, és visszaad egy tömböt.Először meghívom a függvényt, aztán setIntervallal érem el, hogy 20 másodpercenként ismét küldje le az ajax kérést.
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
...
swfPath: "js",
supplied: "mp3",
//wmode: "window"
}).jPlayer("play");
ajaxStation();
setInterval("ajaxStation()",20000);
});
function ajaxStation(){
$.ajax({
type : 'POST',
url : 'shoutcast_info.php',
cache : false,
dataType: 'json',
data: {
station: radioStation
},
timeout: 6000,
success: function(obj){
$("#track_name").html(obj.track);
$("#station_name").html(obj.station);
}
});
}Egyébként ha már itt tartunk. Mivel automatikusan postol az ajax, ezért jó hogy benne van a cache : false? Illetve, hogy tömböt kapok vissza a php fájltól, annak a lekezelése így elfogadható az obj-al?
-
Sk8erPeter
nagyúr
Szerintem az swfPath lehetett nálad a problémás a jPlayer esetén.
Azt határozza meg, hogy hol van a Jplayer.swf. Nagyon fontos, hogy ez stimmeljen, mert azokban a böngészőkben, ahol valamelyik médiaformátumot nem tudja lejátszani a "nyers" HTML5-ös módszerekkel, akkor Flash-sel próbálja meg lejátszani (fallback).Másik kérdésre - PHP-vel változtatásra csak egy példa:
<?php
// ez nálad dinamikusan változik
$radioStation = 'http://87.117.193.10:8000/';
?>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
var radioStation = "<?php echo $radioStation;?>";
// .......................
</script>=====
(#1080) Lacces :
"hogyan lehetne ismételtetni egy ajax hívást?"
Konkrétabban? -
Lacces
őstag
válasz
Sk8erPeter #1077 üzenetére
Dejó hogy itt vagy mester
Azóta megoldotam. Sőt firefox, chrome alatt is megy. Úgyhogy most jó minden
Az volt a gond, hogy mp3-ról volt szó, na az meg alapból nem ment firefox alatt, hiába ahogy az oldal írta, így ki kellett ezt azt vennem és nem kérdezd, miért, de elkezdett működni.
A másik böngésző a chromium volt, azon alapból nem működött a jPlayer, de Chrome alatt viszont igen. Érdekes.Viszont lenne egy kérdésem, nem tudom, hogy most php vagy inkább jquery-s mindkettő.
Itt a jquery:
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
var radioStation = "http://87.117.193.10:8000/";
....Most épp linuxon vagyok, és az lenne a kérdésem, hogyan tudnám elérni, hogy a radioStation nevű változónak php-val adjak értéket?
Egyszerűen próbáltam a <?php echo ... ?> megoldást, de az persze nem működik.
A lényeg, hogy a radioStation változó értéke mindig változik a php által.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #1077 üzenetére
a "pedig alapból nem kell" természetesen a jsFiddle oldalánál igaz csak
-
Sk8erPeter
nagyúr
Szerintem a jPlayer az egyik legjobb ebből a szempontból, mert nagyon jól dokumentált, és viszonylag könnyű testreszabni, rengeteg metódusa van, publikált eventjei, stb...
Tulajdonképpen annyi alapján, amit írtál, hogy kb. "nem működik, mit tegyek", nem sok értelmeset lehet mondani...Mivel próbálkoztál, milyen kóddal, include-oltad-e a jQuery-t, a skineket, blablabla....
Korábban készítettem egy példát jsFiddle-re a jPlayerrel, most update-eltem a kör alakú lejátszóval, igazából copy-paste a hivatalos oldalról, és működött...
http://jsfiddle.net/Sk8erPeter/NhJpj/
Úgy raktam be ide a kódot, hogy mindenféle szükséges HTML-tag belekerült (<html>, <head> és <body> is benne van, pedig alapból nem kell), így elvileg egy az egyben simán copy-paste-elhető saját fájlba is.
-
Karma
félisten
válasz
trisztan94 #1073 üzenetére
Nehogy elágazz, ha már egyszer a selectorban összevontad az ID-ket (instant spagetti)... Tördeld inkább szét több .click() hívásra, és használd ki az eventData paraméterét a clicknek: példa.
-
Lacces
őstag
Nagyúr! Baj van
Hogyan tudom "installálni" a legújabb jPlayer-t?
4 tutorial-t végeztem ki, a hivatalos oldal kódjait is beszúrta, de röhej... nálam egyáltalán nem jelenik meg a lejátszó.
Régen, 1 évvel ezelőtt még szuper volt minden, most meg... nem tudom összehozni...
Esetleg te tudsz valami jó linket adni nekem?
Vagy van valami más audio lejátszó, amivel zeneszám címét lehet megjeleníteni? -
trisztan94
őstag
Sziasztok!
jQueryvel szeretnék ajaxolni 4 menüpontot. itt a kódom:$('document').ready(function() {
$('#welcome, #gallery, #about, #contact').click(function() {
$('#change').load('php/gallery.php');
});
});Az a lényeg, hogy egy ilyen funcitonban legyen benne az ajax és a load után, a gallery.php-s rész az változzon aszerint, hogy melyik menüpontra kattintott.. Szal ha a welcome-ra ment, akkor welcome.php lesz ott, stbstb. Én elágazásra gondoltam, de nem tudom hogy kéne leellenőrizni, hogy melyikre kattintott.
Köszi!
T -
Lacces
őstag
válasz
Sk8erPeter #1071 üzenetére
mentettem is az oldalt
-
Sk8erPeter
nagyúr
Nagyon hasznos jQuery-pluginek egy helyre összegyűjtve:
http://jquer.in/(Példákért az egyes aloldalakon lásd az "Example" linket.)
Ugyanitt Grid Builder:
Megadod az oldal egyszerű, körülbelüli kinézetét (hány sor, hány oszlop), és ez legenerálja a kódot (még ha nem is tökéleteset, de lehet rajta csiszolni), így kezdőknek is elég hasznos lehet. -
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
válasz
Cathfaern #1067 üzenetére
Na igen. Ezeknek a méretei már jóval elfogadhatóbbak, főleg az utóbbi, a Redactor 42 KB-ja pedig végképp meggyőző. A többi szerkesztő már nagyon elszállt méret tekintetében.
"Én tudom ajánlani az elRTE -t (nem mondom, hogy tökéletes, de ingyenesben jobbat nem láttam"
Akkor azt mondod, ez jobb is, mint pl. a CKEditor vagy a TinyMCE? Nem próbáltam, ezért érdekelne, milyen szempontok miatt jobb a méretén kívül, mert nyitott lennék alternatívákra.
A CKEditor főleg amiatt tetszik, mert nagyon jó modult írtak Drupalhoz ([link], [link]), plusz ASP.NET-es alkalmazásban is nagyon egyszerű a használata. Meg a felülete is kellemes. Ettől függetlenül a mérete, nehézkessége miatt egyre kevésbé vagyok oda érte. -
Male
nagyúr
válasz
martonx #1066 üzenetére
Köszi! ...ahogy Cathfaern írja, ez tényleg nem olyan, amit egy hozzá nem értőnek ki lehetne rakni... viszont most lehet, hogy pont erre van szükségem, ugyhogy megnézegetem alaposabban.
Cathfaern: Neked is köszi a linket. Úgy tűnik ideje újra körülnéznem szerkesztő ügyben, és végigpróbálgatni mik vannak.
-
Cathfaern
nagyúr
válasz
martonx #1066 üzenetére
Ez nem WYSIWYG editor, szóval egységsugarú user nem fog igazán tudni mit kezdeni vele (egész pontosan kapni fogod a visszajelzéseket, hogy az miért nem úgy van
)
Én tudom ajánlani az elRTE -t (nem mondom, hogy tökéletes, de ingyenesben jobbat nem láttam. Ha fizetős is szóba jöhet, akkor meg egyértelműen redactor).
-
martonx
veterán
[https://github.com/wymeditor/wymeditor]
Ez milyen?
-
Male
nagyúr
válasz
Sk8erPeter #1064 üzenetére
Átírás helyett lehet ,hogy valaki beelőzi őket, és csinál egy hasonlóan jót, de kifejezetten a jQueryhez... vagy már van is
-
Sk8erPeter
nagyúr
Igen, a CKEditor mérete azért már botrány.
Nem néztem át tüzetesen a kódot, mert nem volt kedvem, de feltételezem, a sok belepakolt HTML-tartalom miatt van többek közt, amik stringként vannak benne, ömlesztve... Példa a tömörített változatból, csak kiragadva egyet:
n.push(' onkeydown="return CKEDITOR.tools.callFunction(',u,', event);" onfocus="return CKEDITOR.tools.callFunction(',v,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',s,', this); return false;"><span class="cke_icon"');, ehhez hasonlókból rengeteg van.
A jQuery-s változathoz viszont szerintem nem adapter kellene, hanem egy komplett átírás, ami mondjuk nyilván nem egy kétperces meló, de a jQuery annyi mindent lekezel eleve, hogy így sok-sok szutykot ki lehetne dobálni a pluginből.Amúgy nem csak a dokumentációval van a baj, hanem a jQuery-vel elérhető metódusok, stb. mennyiségével (lószar).
-
Male
nagyúr
válasz
Sk8erPeter #1062 üzenetére
Igen, én is azt néztem, azért nem is boldogultam... ennél még az egyetemi beadandókhoz is komolyabb dokumentáció kellett
Én is mindig ezt használtam (vagy CKFindert, ha kellett a képkezelés is), de eddig sima JS volt mindig, a jQueryt nem olyan régen kezdtem megismerni-használni, így a kettő kombinációját most használom először.
Sok lehetőség lenne benne szerintem is, szóval ráfeküdhetnének a témára.Jah, van egy mérete... közel négyszerese az egész jQuerynek
-
Sk8erPeter
nagyúr
Szívesen!
Amúgy most nézegettem, meglepően gyászos a CKEditor jQuery-változatának dokumentációja meg egyáltalán a lehetőségei, az az adapter lószar. Egyelőre továbbra is a plain JavaScript változatot nyomatják, amivel még nincs gond, de ettől még gondolhatnának a jQuery-t már előnyben részesítő fejlesztőkre is.
Én a CKEditort kedvelem a legjobban az ilyen jellegű szövegszerkesztők közül, de azért a TÖMÖRÍTVE (!!) 366 KB-os méret enyhén szólva is nevetségesen nagy. Ideje lenne modularizálni kicsit ezt a plugint, vagy kezdeni vele valamit (átírni jobbra, vagy nem vágom), mert ez így tényleg durva. Akkor már legalább biztosítsanak hozzá CDN-t. -
Male
nagyúr
válasz
Sk8erPeter #1060 üzenetére
Hibátlanul működik, ugyhogy jó
(Szebb lenne valahogy lekérdezni, de vagy nem lehet, vagy csak én nem tudom, hogyan lehet...)Köszi mégegyszer!
-
Male
nagyúr
válasz
Sk8erPeter #1056 üzenetére
Már nem tudom szerkeszteni: Köszi! Szóval ennyi volt, simán elrakom egy változóba ha sikeresen inicializáltam... hát ez túl egyszerű volt
Valamiért mindenáron akkor akartam valahogy lekérdezni, amikor inicializálnám...
1058-ra: Igen, ilyesmi a cél. A textarea ellenőrzése elég sok felesleges művelet lenne, mert egyetlen ilyen csereberélő függvény van, és úgy 99%, hogy valami más van abban a divben. Viszont így teljesen jó, hogy ha egyszer inicializáltam, akkor elrakom egy változóba, hogy igen, aztán a csereberéló függvény ezt a változót nézi, és ha igen-en van akkor nyom egy destroy-t és visszabillenti nemre a változót.
(Az eltüntet gombra tenni a destroy-t azért nem vált be... pont ezzel jött elő a gond, mert másra kattintva is tölthet abba a divbe, ha akar... és máris nem futott le a destroy)Már csak egy gondom maradt: a destroy lefutásánál ugrik egyet az egész oldal háttérképestől, mindenestől... csak egy villanás, de elég randa.
-
Sk8erPeter
nagyúr
Ja szóval az a gond, hogy "on-the-fly" szeretnél mondjuk generálni egy ilyen szerkesztőt, mert mondjuk valami in-place-editor-féleség lenne a szerkesztéshez: ezt pedig most úgy oldod meg, hogy mondjuk van egy gomb, hogy szerkeszt, ekkor legenerál mondjuk egy divbe egy formot, aztán mondjuk ha meggondolta magát a júzer, akkor leszedi a szerkesztést, és kicserélődik a div tartalma valami másra...aztán van, hogy mégis akarja szerkeszteni, és akkor megint visszapakolod a formot. Ugye?
Akkor tehát mégis igaz, amit javasoltam korábban, hogy csekkolhatnád azt is, hogy egyáltalán jelen van-e a szerkesztőhöz tartozó textarea (vagy a form - mutattam a length ellenőrzését, ezt minden elemre meg lehet csinálni), ha igen, akkor eltüntetéskor nem egyszerűen törlöd a div tartalmát, hanem destroy-olod a már megnyitott CKEditort, és csak utána írod felül a div tartalmát. De destroy-olni is nyilván csak akkor kell, ha már inicializálva van... ez viszont megint csak nem okoz problémát, mivel csak akkor jelenik meg a lehetőség az eltüntetésre, ha már egyszer inicializáltad is a CKEditort. Az inicializáló gomb meg mindig ugyanazt csinálja. Ezért nem értem, miért nem így közelíted meg a kérdést - már ha érthető, mire akartam kilyukadni.
-
Male
nagyúr
válasz
Sk8erPeter #1056 üzenetére
Ok, igaz.
Mert még millió más dolgot lehet abba a divbe betölteni az oldalon, ezért cserélgetem... a mintába csak kiraktam azt a részt, ami a gondot okozza (nem az a cél, hogy ezt a két gombot nyomogassa, de előfordulhat olyan eset, hogy másodszor is vissza akarja hozni ezt a formot a CKEditoros textareával, és akkor előjön a hiba).
"Ha már létezik a form meg a benne lévő div, meg a textarea, meg minden, akkor miért nem csekkolod, hogy megvan-e már?"
Tényleg nem érted... Nem az a gond, hogy újra betölti ugyan azt, és ezt meg akarom akadályozni... azt sima ügy megoldani. A gond az, hogy betölti, majd a helyéra valami mást, majd ismét betöltené a formot, és itt amikor a CKEditor hozzá rendelőde, akkor lehal.Szerkre: Ok, szóval egyszerűen tároljam el egy változóban hogy mostmár inicializáltam... megnézem, lehet, hogy ez végülis elég is.
-
Sk8erPeter
nagyúr
"Már hogy ne töltené újra az oldalt? Megnyomod az Initalize gombot... utána nem tudod mégegyszer megnyomni, mert eltűnik, tehát újra kell töltenem az oldalt, hogy megint megnyomhassam. Így pedig persze hogy nincs probléma."
Még mindig nem értetted meg, amiről korábban vakerásztam...Mivel forbiddent kap a jsFiddle a scriptek include-olásakor, ezért a CKEditor rohadtul nem fog működni... Tehát érvényre sem jut, amit ott írok, dob valami exceptiont, és nem lesz return false, hanem továbbmegy az action attribútumban megadott feldolgozó fájlra.
A kódodat nem tanulmányoztam túlzottan, de akkor sem értem, mi a francnak cserélgetni a div tartalmát mindig pontosan ugyanarra, egyáltalán mit akarsz ezzel?
Ha már létezik a form meg a benne lévő div, meg a textarea, meg minden, akkor miért nem csekkolod, hogy megvan-e már?
Csak a textarea tartalmát akarod lecserélni, vagy mi a célod?Szerk.:
most utólagos engedelmeddel viszont felhasználtam az oldaladról a scriptek elérési útját.
Itt van a működő változat, aminek NEM szabad "újratöltődnie", elküldenie a formadatokat az incializáló gomb lenyomása után:
http://jsbin.com/uyizov/3
Lényeg: első inicializálás után akárhányszor nyomogathatod az inicializáló gombot, mindig ugyanaz a függvény fut le, ahol az inicializálás megtörténik, mégsem okoz SEMMI gondot...... mivel eleve lekezelték ezt az esetet.
Így már érted? -
Male
nagyúr
válasz
Sk8erPeter #1053 üzenetére
Azt mondtam, hogy működik a tiéd, nem azt, hogy nem
Már hogy ne töltené újra az oldalt? Megnyomod az Initalize gombot... utána nem tudod mégegyszer megnyomni, mert eltűnik, tehát újra kell töltenem az oldalt, hogy megint megnyomhassam. Így pedig persze hogy nincs probléma.
"Itt minden egyes alkalommal, amikor meghívódik a formotide() függvény, létrehozod a már létező formot újra és újra"
Igen, mert újra ki kell tenni.... de ettől még nem lesz ott többször, mivel a div tartalmát erre cserélem, és nem hozzáfűzöm...Szerintem félreértesz... Nem az a gond, hogy kétszer lesz kint a form, és ezt kéne ellenőrizni... hanem hogy egyszer kiteszi a gombbal, majd a másikkal eltünteti, aztán újra a formot rakatja ki, és ekkor hal le a CKEditor...
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #1053 üzenetére
Na, innen is tiltják úgy tűnik pár próbálkozás után a hotlinkelést, szóval kéne találni valami helyet, ahova fel lehet tölteni ezeket a JS-fájlokat, és hotlinkelni.
-
Sk8erPeter
nagyúr
Ezek szerint nem olvastad el/értelmezted, amit a "Szerk." után írtam...
Előbb gondold végig, és utána mondd, hogy "de a tiéd nem működik". De, működik.Ha Chrome-ban megnézed, a scriptek kapnak egy-egy forbiddent:
GET http://nightly.ckeditor.com/7582/ckeditor.js 403 (Forbidden)
GET http://nightly.ckeditor.com/7582/adapters/jquery.js 403 (Forbidden)Így nyilván nem is az elvártak szerint fog működni, erre írtam, hogy nincs CDN vagy hasonló hely, ahonnan közvetlenül linkelhetném, mert a hivatalos honlapról tiltják a direkt linkelést...
Próbáld ki saját gépen, ott nem fogja "újratölteni" az oldalt. Bár újratöltést nem is látok, legfeljebb azt, hogy a formot elküldi szerveroldalra.Na, de most találtam egy ILYEN kerülő megoldást, a cím mögé írtam, hogy .nyud.net, és úgy linkeltem direktben, így működni látszik (persze lehet, hogy ez is csak egy ideig, nem vágom):
http://jsbin.com/uyizov/2Nem "tölt újra" semmit...
Szerk.:
De vazze, most nézem a kódodat, amit belinkeltél:function formotide(){
var szerkesztofelulet = '<form id="admin_konyv_szerkeszt"><h2>A ... szerkesztese</h2><textarea id="ckeditor" name="konyv_leiras" rows="30" cols="80">Bla bla</textarea><br /></form>';
$('#tartalom').html(szerkesztofelulet);
$('#ckeditor').ckeditor();
}
function maside(){
$('#tartalom').html('szerkesztofelulethelyett');
}Itt minden egyes alkalommal, amikor meghívódik a formotide() függvény, létrehozod a már létező formot újra és újra... mégis mit vársz akkor, miért működne már jól?
Elég egyszerű leellenőrizni, hogy már létezik-e a form, pl. így:if($('#admin_konyv_szerkeszt').length > 0){
....
} -
Male
nagyúr
válasz
Sk8erPeter #1051 üzenetére
martonx: Sajnos ez kevés... ami előtt a hiba jelentkezik, nem jön létre semmi, legalábbis én nem látom.
Amit linkelsz, az persze, hogy megy, mert újra tölti az oldalt mindig....
Új CKEditort használok, pár napos csak.
Nm akartam bedobni az egészet, mert hosszú, és sok "felesleges" van benne (külső forrásból tölt a formhoz, stb.). Csináltam egy minta oldalt, amin előjön ez a hiba:
"Form kirakasa" gomb, ekkor szépen kiteszi a CKEditort... aztán katt a "Mas a form helyere", végül újra a "Form kirakasa" ...és már le is hal azzal a hibával, amit írtam. Egyszerűen arra lenne szükkség, hogyha másodszor teszi ki a formot, akkor előbb legyilkolja a CKEditort, és csak utána rendelje hozzá...
-
Sk8erPeter
nagyúr
Azért nem ártott volna, ha valami konkrét kódot is mellékelsz, hogy lássuk, mivel próbálkoztál...
A problémádat meg azért nem értem, mert egyrészt lehet a .ckeditor()-nak callback-et is átadni, vagyis akár egy "globális" változót is be lehet állítani a callback-ben, hogy OK, inicializálva (igaz, nem szép), plusz van az a megoldás, amit martonx javasolt, ezenkívül én akárhányszor inicializálom itt a CKEditort, nem kapok rá hibát (csak gyorsan összetákolt kód, úgy nézni):
http://jsbin.com/uyizov(katt a kódhoz a jobb felső sarokban lévő "Edit in jsbin.com"-ra!)
Itt kéne lennie annak a hibának, amit írtál?
Amúgy melyik verziót használod, nem lehet, hogy valami régebbit?Szerk.: a CKEditor oldaláról közvetlenül belinkelt kódok néha Forbiddent kapnak, gondolom pár betöltés után (nem következetesen!) tiltják a direkt linkelést, szóval ne várjátok, hogy mindig működik ez a kód... nincs semmi CDN-je vagy github-oldala vagy hasonlója sem a CKEditornak, így kénytelen voltam így linkelni...
-
martonx
veterán
konkrétan én sem, de legyünk már egy csöppet találékonyak. A CKEditor, meg minden hasonszőrű plugin létrehoz egy rakás DOM elemet.
Ezek közül leellenőrzöd a legfelsőt, hogy ott van-e, és ha ott van, akkor létrejött a CKEditor, ha nincs ott, akkor nem jött létre.
Ilyen egyszerű. -
Male
nagyúr
Végülis megkerültem: mivel egyetlen függvény van, ami mást tölthet a form helyére, így betettem oda fixen egy destroy()-t... (A mégsem gomb is ezt használta, csak előbb nyomott egy destroy-t.)
Ha nincs szerkesztő, nem okoz hibát, ha meg van, akkor lefut. Viszont ez nem valami szép megoldás... ugyhogy továbbra is, ha valaki tud jó megoldást a problémára, akkor légyszi írja meg! -
Male
nagyúr
Valaki használja CKEditorral a jQueryt?
A következő a gondom:
jQueryvel kirakok egy formot, benne egy textarea. Ha megjelent, akkor lecserélem a textareát a ckeditor szerkesztőjére ( $('#textarea_idje').ckeditor(); ). Van hozzá egy "Mégsem" gomb, ami először leszedi a ckeditort ( destroy(); -jal ), majd a form helyett betölti ami kell.
Ez így szépen működik, akár hányszor behozza a formot, majd nyom "Mégsem"-et, mindig megy.
A gond ott van, ha nem a "Mégsem"-et nyomja meg, hanem valami más gombbal/menüponttal tölt valamit a form helyére (nem tölti újra az oldalt, csak behoz mást), majd szépen visszahozza a formot, akkor elszáll az egész, mivel a form megjelenésekor lefutna a "$('#textarea_idje').ckeditor();", miközben előtte már lefutott egyszer, és nem volt destroy(); előtte. ...ezért aztán egy "uncaught exception: [CKEDITOR.editor] The instance "textarea_idje" already exists." hibát kapok.Hogy lehet ezt megoldani? Arra gondoltam, hogy a "$('#textarea_idje').ckeditor();" előtt le kéne ellenőrizni, hogy jelen van-e már ez, és ha igen, akkor előbb egy destroy()-t hívni... csakhogy nem tudom leellenőrizni, hogy jelen van-e már.
-
Soak
veterán
válasz
Sk8erPeter #1042 üzenetére
Azokat tényleg elfelejtettem includeolni, de a formot azért nem tettem köré mivel gondoltam ugysincs hova elküldeni.
Na mindjárt megprobálom magamnál is megcsinálni
-
Sk8erPeter
nagyúr
A $(document).ready(function() {-t nem zártad le, nem volt a végén });, ennyi volt a baja a validitással.
Ezenkívül itt nem include-oltad a jQuery-t bal oldalt kiválasztva a library-t a MooTools helyett. A qtipet sem include-oltad.Azt az Add resources-nál hozzáadtam. Ahogy a CSS-fájlokat is.
Az event_delete class-szal rendelkező formot sem raktad az input köré...Egy működő változat (természetesen az AJAX-os kérés nem fog működni, de beraktam minimalista hibakezelőt):
http://jsfiddle.net/Sk8erPeter/kJadU/1/ -
Soak
veterán
Kicsúsztam : http://jsfiddle.net/kJadU/ , ez a releváns dolog úgy gondolom.
-
Soak
veterán
válasz
Sk8erPeter #1039 üzenetére
Nem korábban van, nem tudom, hogy miért dobott hibát, csak azt a részt másoltam be amit te írtál,oda ahova irtad, a komment alá, nem tudom miért szarozik, mindjárt megprobálom újra, mondjuk ha belegondolok a facebookos like beágyazós js-re is szintaktikai hibát dob, holott fut rendesen, most felraktam a CS6-ot, megnézem ezzel is.
Szerk : CS6-nak se tetszik.
Szerk2:
$(document).ready(function()
{
/*
* Common dialogue() function that creates our dialogue qTip.
* We'll use this method to create both our prompt and confirm dialogues
* as they share very similar styles, but with varying content and titles.
*/
function dialogue(content, title) {
/*
* Since the dialogue isn't really a tooltip as such, we'll use a dummy
* out-of-DOM element as our target instead of an actual element like document.body
*/
$('<div />').qtip(
{
content: {
text: content,
title: title
},
position: {
my: 'center', at: 'center', // Center it...
target: $(window) // ... in the window
},
show: {
ready: true, // Show it straight away
modal: {
on: true, // Make it modal (darken the rest of the page)...
blur: false // ... but don't close the tooltip when clicked
}
},
hide: false, // We'll hide it maunally so disable hide events
style: 'ui-tooltip-light ui-tooltip-rounded ui-tooltip-dialogue', // Add a few styles
events: {
// Hide the tooltip when any buttons in the dialogue are clicked
render: function(event, api) {
$('button', api.elements.content).click(api.hide);
},
// Destroy the tooltip once it's hidden as we no longer need it!
hide: function(event, api) { api.destroy(); }
}
});
}
// Our Confirm method
function Confirm(question, callback)
{
// Content will consist of the question and ok/cancel buttons
var message = $('<p />', { text: question }),
ok = $('<button />', {
text: 'Ok',
click: function() { callback(true); }
}),
cancel = $('<button />', {
text: 'Cancel',
click: function() { callback(false); }
});
dialogue( message.add(ok).add(cancel), 'Photofreak' );
}
// Setup the buttons to call our new Alert/Prompt/Confirm methods
$('.event_delete input[name="delete_event"]').click(function() {
Confirm('Are you sure you want to delete this photograph?', function(yes) {
// do something with yes
$.ajax({
url: 'ajax/settings_form.php',
data: 'asd',
success: function(data) {
// .............
}
});
});
return false;
});Így néz ki a kód jelenleg, erre dobja a hibát.
-
Sk8erPeter
nagyúr
"Hibát dobott rá a DW, kijavitottam ilyenre, nem tudom ,hogy jó-e."
Mire dobott hibát?Pedig abban, amit írtam, szintaktikai hiba nincs.
Abban viszont van, amit Te írtál.
Valahol korábban lesz nálad a hiba.
Dobd már be a kódodat légyszi jsFiddle-re, mert így nem látjuk át, mi a potenciális hiba.
A confirm ablak egyáltalán megjelenik?Ahogy Karma írja, kéne néhány helyre tenni console.log()-gal valami üzenetet, hogy lásd, meddig jut el a kód.
Amúgy a data-ban pl. a kép id-ját küldhetnéd el, pl. így:
{photoId: 653} -
Soak
veterán
válasz
Sk8erPeter #1036 üzenetére
Hibát dobott rá a DW, kijavitottam ilyenre, nem tudom ,hogy jó-e.
$('.event_delete input[name="delete_event"]').click(function() {
Confirm('Are you sure you want to delete this photograph?', function(yes) {
$.ajax({
url: 'ajax/event_action.php',
data: 'asd',
success: function(data) {
// .............
}}) <- itt volt zárójel hiba
});
});
return false;
});Viszont nem működik, nem történik semmi, pedig a classok és a nevek helyesek. Megmondom őszintén nem értem, hogy mi történik ,szóval fogalmam sincs miért nem megy, sejtem, hogy a data az nem asd kéne, hogy legyen.
-
Sk8erPeter
nagyúr
Csak gyorsan belenézve a kódba (tévedés joga fenntartva!
) szerintem ilyesmi a megoldás:
// Setup the buttons to call our new Alert/Prompt/Confirm methods
$('.event_delete input[name="delete_event"]').click(function() {
Confirm('Are you sure you want to delete this photograph?', function(yes) {
// do something with yes
$.ajax({
url: 'ajax/test.html',
data: 'asd',
success: function(data) {
// .............
}
});
});
return false;
});A lényeg tehát, hogy itt egy AJAX-os kérést indítasz.
========
(#1035) martonx : ja OK, gondoltam, hogy nem mindenféle telód van
, csak úgy tűnt, hogy átmegyünk "hülyefelhasználóvegyenmárnormálistelefontrohadjonmeg"-szidásba.
-
martonx
veterán
válasz
Sk8erPeter #1032 üzenetére
Elárulom, hogy Android emulátorral fejlesztek. Nekem céges butafon-om van, és hülye lennék bármennyit is költeni telefonra (aztán mikor egy-egy etap kész, akkor teszteljük mindenféle készüléken). Amit írtam a statisztikák alapján írtam. Fejlesztőként viszont rendesen szívok az Android platform töredezettségével, utálom is rendesen.
-
Soak
veterán
Megint probálok ezzel szerencsétlenkedni kicsit. Amit sehogy sem tudok megoldani (nem találtam konkrétan erre leirást sehol
), hogy miután yes-re kattintottam elküldje a formot a JS. Jelengleg így néz ki a gomb
<input class="button" name="delete_event" type="submit" value="Delete">
Ugye ezzel azt is elérem, hogy tudom melyik gombot nyomtam meg (name="delete_event") . A formnak event_delete classot adtam, ha számít.
-
-
Sk8erPeter
nagyúr
válasz
martonx #1030 üzenetére
"De ha egyszer mindenki a kártyásan 20K-s android-os fosokat veszi meg, akkor a fejlesztőnek ezt kell kiindulási alapnak vennie
"
Azért ez speciel sztem nem egy olyan téma, mint kb. az Internet Explorer mai napig, ÖNKÉNT történő használata, ami kegyetlen nagy gyökérség. Sok ember nem hajlandó egyszerűen annyit áldozni egy telefonra, pl. én is ezek közé tartozom. Jelenleg egy fostalicska érintőképernyős ostobafonom van, telefonálásra, SMS-írásra, zenehallgatásra használom, de majd váltok Androidosra, hogy egy kicsivel több funkcionalitás legyen elérhető a telefonomon (mondjuk ha többet áldozok rá egy kicsit, akkor még talán kíváncsiságból fejlesztek is rá, meg hátha ilyen melóm lesz), de egyébként egyelőre úgy vagyok vele, hogy magasról teszek rá, mennyire komoly a telóm, ha akarok böngészni, tudjak vele viszonylag tűrhetően, de egyébként inkább fontosabb dolgokra (mint pl. akkor már inkább áldozok a laptopomra, kiegészítőkre, külső vinyóra, ilyesmi) költöm a lóvét.
Most ezt csak azért mondtam el, hogy ne nézzük már le a gyengébb telefonnal rendelkezőket. -
Karma
félisten
-
martonx
veterán
Az animáció Android oprendszer, és mobil proci függő. Ami egy Galaxy SII-esen röccenés nélkül animál, az egy Alctel OT-akárhányon úgy szaggat, hogy rossz nézni. Viszont a többségnek Alcatel szintű hardware-e, meg oprendszere van.
Másrészt mindez egyedül Android-on probléma, IOS-en, WP7-en, BlackBerry-n nem probléma.
De ha egyszer mindenki a kártyásan 20K-s android-os fosokat veszi meg, akkor a fejlesztőnek ezt kell kiindulási alapnak vennie -
Male
nagyúr
válasz
martonx #1028 üzenetére
Na, pont PhoneGap kell majd nekem is....igazából, csak pár hónap múlva, most még csak egy mini tesztet csináltam, hogy egyáltalán működésre tudom-e bírni
Csak az animáció a nehézség nekik, az összes többi dolog mehet simán akkor?
(Ha majd elakadok, kérdezhetek priviben, vagy van ennek külön topicja?)
-
martonx
veterán
válasz
Sk8erPeter #1026 üzenetére
jelentem per pillanat Android 2.1-es régi szutyok gépekre optimalizált weboldalt (igazából phonegap projekt) fejlesztek jqueryvel, és nem jelent rájuk semmiféle terhelést az események dinamikus bekötése.
Az egyetlen ami terhelést jelent nekik, bármiféle animáció (slide, toggle, fade ilyesmik) lejátszása a böngészőben. -
Male
nagyúr
válasz
Sk8erPeter #1026 üzenetére
Ok
Következő dolog amit meg kéne néznem, mi-mekkora terhelést okoz... mert JS szempontból csak tippelgetek, ami nem túl előnyös fejlesztési szempontból
-
Sk8erPeter
nagyúr
Ja tényleg, azért zavart meg, mert ahhoz hasonló stílusokat, class-okat alkalmaz, mint a jQuery UI Dialog.
(#1024) Male :
"Valami gyenge ARM-os cuccon sem jelent semmit ez a plusz terhelés?"
Hát fogalmam sincs, nem készítettem ilyen benchmarkot sosem, de azért 60 elemnél már csak nem. -
Soak
veterán
válasz
Sk8erPeter #1023 üzenetére
Sokkal egyszerűbben kezelhető számomra, legalábbis eddig. Azt tulzás állítani, hogy visszatértem, keresem az utam ...
... A style-t nem én raktam bele, ha megnézed amit linkeltem akkor már ott is fent van.
-
Male
nagyúr
válasz
Sk8erPeter #1023 üzenetére
Jó, rengeteg plusz karakter
(átírni mondjuk annyira nem kell, mert miért írnám át)Valami gyenge ARM-os cuccon sem jelent semmit ez a plusz terhelés? Mert ha ott sem, akkor tényleg nincs értelme, és meg vagyok győzve
-
Sk8erPeter
nagyúr
"de buttonnál én inkább onclick-el beírnám direktben mindnél, hogy mit indítson, mert minek terhelni vele a felhasználó gépét betöltés után"
A terhelés nem igazán érv ebben az esetben, az onclick attribútum használata meg csúnya, szemantikai keveredést jelent. Bár ez is felfogható egyfajta hitkérdésként, de szerintem tényleg nem szép keverni a kódot. Pl. az már eleve nem szép megoldás, ha a PHP-kódba (template-fájlba) is bele kell túrni ahhoz, hogy átírd mondjuk az onclick-attribútumba beleírt JavaScript-függvény nevét.
Meg mondjuk rengeteg legenerált elemnél rengeteg plusz karaktert is bele kell generálni az adott elemekbe szerveroldalon, a külső JS-fájlban tárolt eseménykezelőt meg cache-ből is előkotorhatja a böngésző.
========
(#1010) Soak : na, hogyhogy mégis visszatértél a qtipre?
style: 'ui-tooltip-light ui-tooltip-rounded ui-tooltip-dialogue'
De azért kevered a jQuery UI Dialoggal is...? -
Sk8erPeter
nagyúr
Bocs, de ez így nagyon ronda megoldás.
Ha már nem inline módon adod meg az egyes attribútumok értékét (mint pl. az onclick-attribútumét), amit nagyon jól is teszel, akkor használd ki a lehetőségeket, amiket a jQuery kínál, mert nagyon kényelmesen lehet vele megoldani az ilyesmit.
Azt írod, select listából való kiválasztás esetén szeretnéd átirányítani a felhasználót. Ekkor a .change() eseményre köss eseménykezelőt.
Az átirányítást pedig igénytől függően window.location.replace()-szel vagy window.location.href-fel oldd meg.Ezek alapján példa:
$(document).ready(function(){
$('#szallmodvalt').change(function(){
var $selectedItem = $(this).find(':selected');
alert($selectedItem.val());
var url = "/admin.php?url=admin_raktar_item.php&szallmodvalt=" + $selectedItem.val();
// @see http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery-javascript
// // similar behavior as an HTTP redirect
// window.location.replace(url);
// similar behavior as clicking on a link
window.location.href = url;
});
});Még egy fontos dolog: ebben semmi AJAX nincs, ez egy szimpla átirányítás!
-
Male
nagyúr
Akkor is egy helyen kell karban tartani, hiszen ugyan azt a függvényt hívja meg mind, elég a függvényt szerkeszteni.
Cathfaern: Igen, ha annyira el akarom különíteni a HTML-től, csak ha meg class alapján rendelem hozzá, akkor hozzákötöm a stílushoz is tulajdonképpen, ami meg máshol lehet nehézség (pl máshol is azonos stílust alkalmaznék egy gombra, de más event kell neki, vagy éppen egy dizájn módosításnál a gombok egy részét megváltoztatnám, de akkor emiatt a JS-t is át kell írni, hogy a módosítottakhoz is hozzárendelődjön).
-
Soak
veterán
Közben foglalkoztam vele kicsit komolyabban és elég kézen fekvő volt, hogy .classneve , de kösznöm mindenesetre. Nem hinném, hogy ez annyira hazavágja a gépüket, nagyon kevés olyan dolog van az oldalon amit a felhasználó futtat.
Cathfaern : Egyelőre azért mert foglamam sincs hogyan kell ...
.. Ezt megtaláltam és jónak tűnt, sok minden más is van a qtip-ben ezért kézenfekvőnek gondoltam, ha innen használom a dialogot.
-
Male
nagyúr
-
-
Soak
veterán
Az miért van, hogy php-ben, foreach-el kirakok 2 elemet, mind a kettőn ugyanaz a button van, ugyanazzal az id-val és az elsőnél feljön az ablak, a másodiknál viszont nem reagál semmire a button.
Itt van a kód : [link] , A download gombra kattintva leszedi ugyanezt egy szimpla html-ben, ott elég jól lehet látni mindent. itt a confirmot használom, nálam így néz ki a kód;
$(document).ready(function()
{
/*
* Common dialogue() function that creates our dialogue qTip.
* We'll use this method to create both our prompt and confirm dialogues
* as they share very similar styles, but with varying content and titles.
*/
function dialogue(content, title) {
/*
* Since the dialogue isn't really a tooltip as such, we'll use a dummy
* out-of-DOM element as our target instead of an actual element like document.body
*/
$('<div />').qtip(
{
content: {
text: content,
title: title
},
position: {
my: 'center', at: 'center', // Center it...
target: $(window) // ... in the window
},
show: {
ready: true, // Show it straight away
modal: {
on: true, // Make it modal (darken the rest of the page)...
blur: false // ... but don't close the tooltip when clicked
}
},
hide: false, // We'll hide it maunally so disable hide events
style: 'ui-tooltip-light ui-tooltip-rounded ui-tooltip-dialogue', // Add a few styles
events: {
// Hide the tooltip when any buttons in the dialogue are clicked
render: function(event, api) {
$('button', api.elements.content).click(api.hide);
},
// Destroy the tooltip once it's hidden as we no longer need it!
hide: function(event, api) { api.destroy(); }
}
});
}
// Our Confirm method
function Confirm(question, callback)
{
// Content will consist of the question and ok/cancel buttons
var message = $('<p />', { text: question }),
ok = $('<button />', {
text: 'Ok',
click: function() { callback(true); }
}),
cancel = $('<button />', {
text: 'Cancel',
click: function() { callback(false); }
});
dialogue( message.add(ok).add(cancel), 'Photofreak' );
}
// Setup the buttons to call our new Alert/Prompt/Confirm methods
$('#confirm').click(function() {
Confirm('Are you sure you want to delete this photograph?', function(yes) {
// do something with yes
});
});
});A fölösleges részeket kiszedtem. A button így néz ki :
<button class="button" id="confirm" type="button" >Delete</button>
Köszönöm előre is.
Szerk : Jah és még egy kérdés, hogy tudom elérni, hogy a yes-re kattintva a formot elinditsa? Magyarul ugyanazt megcsinálja mintha egy szimpla submit lenne egy html form alján.
-
martonx
veterán
-
Lacces
őstag
Már lejárt az időlimit...
Kijavítottam és így az url már okés, viszont a click() esemény nem fut le, hogyan tudnám azt is lefuttatni?var selectedItem = $("#szallmodvalt").val();
var url = "document.location.href='/admin.php?url=admin_raktar_item.php&szallmodvalt=" + selectedItem + "';";
$('#szallmodvalt').attr('onClick', url);
$('#szallmodbutton').click()Nem a legszebb megoldás, de ekkor viszont 2db "ajax" kérés fut le az oldalon.
-
Lacces
őstag
Csáó
Segítséget kérnék, documet.location.href-et kell alkalmaznom, de nem tudom, hogy hogyan kéne átadni az URL-ben egy értéket.
Röviden ha a select-ben kattintok (kiválasztok egy elemet a listából), akkor az oldalt kell újra generálni, az url-ben viszont a megjelenik a $selectedItem, mint szöveg, de az értéket hogyan kell megjeleníteni? (hozzáfűzni az urlhez)?
$selectedItem = $("#szallmodvalt").val();
$('#szallmodvalt').attr('onClick', "document.location.href='/admin.php?url=admin_raktar_item.php&szallmodvalt=$selectedItem';");
$('#szallmodbutton').click() -
Karma
félisten
válasz
Siriusb #1004 üzenetére
Ilyesmi. Mindkét nyelvnél van lehetőség deployment időben és futásidőben is szerveroldalon renderelni, illetve a LESS tud olyat is, hogy a kliensböngésző bontja ki JavaScripttel. Tudtommal nem tud kevesebbet, mindössze az a baj, hogy IE alatt ez nem támogatott
Én, mint említettem, Mavenbe integrálva használom a LESS-t, így a kimenő WAR-ban már csak a renderelt CSS-ek szerepelnek.
-
Siriusb
veterán
Pont tegnap botlottam bele a Sass-ba és egy *picit* beleolvastam. Jól értem, hogy a sass ill. less segítségével megírod a stylesheet-et (változók használata nagyon szimpatikus) és utána rendereled a böngészők számára használható formába? Úgy látom van valami less.js is, ez valamiféle csökkentett funkcionalitással bír?
-
Karma
félisten
válasz
Sk8erPeter #1001 üzenetére
A háttérbe küldtem az ablakot így nem figyeltem, de mostanra betöltötte a Fiddle-t és működik is. Előtte egy percig néztem az üres ablakot és a tekerő karikát.
Az oktatásba még nem nagyon mennék bele - egyrészt elég jók a példák és a referencia, másrészt késő van
Csak elhintem a magvakat.
-
Sk8erPeter
nagyúr
Hmm, még én sem használtam, szóval én is tudatlan vagyok a témában, de kezdheted az oktatást.
Amúgy megnézve a hivatalos oldalon a példákat, eléggé igencsak faszán hasznosnak tűnik, pl. a változószerű használat kapásból feltűnt.
Ja, előbb elfelejtettem mondani, IE-ben valami iszonyat lassan jön elő a jsFiddle-ben összerakott tartalom a jobb alsó sarokban... Elsőre azt hittem, na, ez nem működik, aztán jó lassan csak megjelent a tartalom... és jól műxik. Nálad egyáltalán be sem jön a jsFiddle?
Új hozzászólás Aktív témák
- Debrecen és környéke adok-veszek-beszélgetek
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- GL.iNet Flint 2 (GL-MT6000) router
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Hardcore café
- AliExpress tapasztalatok
- Steam topic
- Milyen egeret válasszak?
- Premier előzetesen a Like a Dragon: Pirate Yakuza in Hawaii
- SSD kibeszélő
- További aktív témák...
- HP ZBOOK 17 G6 Tervező Vágó Laptop -60% 17,3" i7-9850H 16/512 QUADRO RTX 3000 6GB FHD
- Samsung S21 5G megkímélt jó állapotban.
- NVidia RTX 3080 Founders Edition + 12VHPWR átalakító
- Canton Karat 40 hangfalpár
- AM5 Gamer PC - Ryzen 5 8400F / RX 9060 XT / A620M / 16GB vagy 32GB DDR5 RAM / 256GB M.2+1TB M.2 SSD
- Samsung Galaxy S23 Ultra 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- 20+ típus HP üzleti laptopok Elitebook, Probook, Zbook 8-13. gen gar.
- Eredeti Microsoft Windows 10 / 11 Pro OEM licenc Akciós áron! 64/32 bit Azonnali kézbesítéssel
- HIBÁTLAN iPhone 14 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3242
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest