Hirdetés

2024. május 3., péntek

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  jQuery topic

Hozzászólások

(#3251) Sk8erPeter válasza trisztan94 (#3249) üzenetére


Sk8erPeter
nagyúr

Hogy mi? Ez komoly, hogy úgy akarod megoldani a problémát, hogy 5 másodpercenként ránézel az elemre, hogy mi a helyzet vele? :D

(#3248) disy68:
Ez mennyire brutálisan béna a Bootstrapnél, hogy egyetlen karakterben tér el a két event, "slide.bs.carousel", illetve "slid.bs.carousel", úristen, ezt még nem is láttam. :DDD Ilyen alapon lehetett volna akár "slide.bs.carousel" és "slide.bs.carouse" is, hasonlóan lehetne érteni és észrevenni a különbséget. Micsoda egy idióta, aki ezt kitalálta.

Sk8erPeter

(#3252) pckownz


pckownz
senior tag

Hol van az aktualis "hatar", ahol mar a teljesitmeny rovasara megy a js?

Van barmi eszkoz amivel merni lehet a performance-ot? (Lehet akar html+css is)

Vagy manapsag mar nem kell ilyen miatt aggodni, normalis korulmenyek kozott?

(#3253) Sk8erPeter válasza pckownz (#3252) üzenetére


Sk8erPeter
nagyúr

Most ez olyan kérdés, amire lehetetlen értelmes választ adni, mert semmi konkrétumot nem tartalmaz, meg ilyen "attól függ" bullshittel szerintem senki nem akarja koptatni a billentyűzetét. :D

Sk8erPeter

(#3254) fordfairlane válasza pckownz (#3252) üzenetére


fordfairlane
veterán

Jelen helyzeteben szerintem a mobilok jelentik a szűk keresztmetszetet, (esetleg a 6-8 évnél régebbi gépek). Igaz, hogy az utóbbi években teljesítményben sokat fejlődtek, de még nem érik el a notebookok-asztali gépek teljesítményét.

x gon' give it to ya

(#3255) dqdb válasza Sk8erPeter (#3251) üzenetére


dqdb
nagyúr

Ez mennyire brutálisan béna a Bootstrapnél, hogy egyetlen karakterben tér el a két event, "slide.bs.carousel", illetve "slid.bs.carousel", úristen, ezt még nem is láttam. :DDD
Többféle iskola van különböző frameworkokben a before és after események elnevezésére:
1. jelen idő és múlt idő, így lett slide és slid
2. jelen idő és befejezett múlt idő, a Bootstrap szerintem ezt használja, és nem az előzőt, így lett slide és slid
3. folyamatos jelen és múlt idő, ekkor sliding és slid lenne
4. before prefix és jelen idő, ekkor beforeslide és slide lenne
5. és így tovább ...

Legalább próbálnak konzekvensek lenni, csak ez most kissé bénán jött ki. Én a 4. pontban vázolt megoldást szeretem, mert ott nem okoz gondot, ha egy igének a jelen és múlt ideje megegyezik (például read)

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#3256) Sk8erPeter válasza dqdb (#3255) üzenetére


Sk8erPeter
nagyúr

Igen, elég egyszerű lett volna elintézni, hogy ne egy darab, alig észrevehető karakterben (e) térjenek el. :) Amúgy persze, értem az okokat, de ez jelen formájában béna.
Főleg, hogy "belül" a sliding szócskát használják (miért nem lehetett akkor azt használni az eseménynél is?):
http://getbootstrap.com/dist/js/bootstrap.js
var Carousel = function (element, options) {
this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused = null

this.sliding = null
this.interval = null
this.$active = null
this.$items = null
...

Azért a kódban külön megjegyzik, hogy "// yes, slid" :D
var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"

Sk8erPeter

(#3257) dqdb válasza Sk8erPeter (#3256) üzenetére


dqdb
nagyúr

Igen, elég egyszerű lett volna elintézni, hogy ne egy darab, alig észrevehető karakterben (e) térjenek el.

vs

Legalább próbálnak konzekvensek lenni, csak ez most kissé bénán jött ki.

Én a konzekvenciára szavazok minden ilyen esetben, még akkor is, ha az néha bénán jön ki. És lássuk be, akkor lett volna/se lett volna rajtuk sapka, ha az eseményt nem slide-nak nevezik el, amikor netszerte mindenki ezen a néven illeti :P

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#3258) Sk8erPeter válasza dqdb (#3257) üzenetére


Sk8erPeter
nagyúr

Miért ne lennének konzekvensek akkor, ha
sliding.bs.carousel és slid.bs.carousel
vagy épp
slide.bs.carousel és afterslide.bs.carousel
a neve az eventeknek?
Mindegy, szerintem túlragoztuk ezt a témát, szerintem ez így szar. :DDD

Sk8erPeter

(#3259) dqdb válasza Sk8erPeter (#3258) üzenetére


dqdb
nagyúr

Ááá, dehogy, főleg annak tükrében, hogy egyikünk se fogja valószínűleg sosem használni ezt a controlt :DDD Én végig úgy értettem a konzekvenciát, hogy önmagukon belül konzekvensek, egyszer meghozták ezt az elnevezési szabályt, és azóta az összes komponensüknél használják az event handlerek elnevezésére: jelen idő esemény előtt, befejezett múlt idő esemény után.

Amúgy máshol van close/closed és show/shown ;]

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#3260) biker


biker
nagyúr

$(":submit").closest("form").submit(function(){
$(':submit').attr('disabled', 'disabled');
});

ez a kód miért disabledeli az összes submit buttont, nem csak azt amit nyomtam?
Amúgy nem hiba, mert ok, el lett küldve, és újratölt az oldal, de fura, hogy minden gomb disabled lesz :)

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3261) disy68 válasza biker (#3260) üzenetére


disy68
aktív tag

Azért, mert azt írtad :) . Amúgy ebben a formában nem túl optimális a dolog.

Ez illeszkedik az összes submit gombodra $(":submit") és majd a hozzájuk legközelebb eső form-ra closest("form") magyarul az összes formodra -> $("form").

Az eseménykezelődön belül pedig az összes submitra állítasz disabled attributumot.

Az eseményeknél használhatod az event.target és az event.currentTarget property-ket jQuery-nél is, ha az esemény kiváltójára akarsz hivatkozni pl. $(event.currentTarget)

Összerakva a fentieket:

$("form").submit(function(event){
// ha csak az adott form submitjára illeszkedjen
$(event.currentTarget).children(":submit").attr('disabled', 'disabled');
// ha az összesre, akkor az általad írt
$(':submit').attr('disabled', 'disabled');
});

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#3262) biker válasza disy68 (#3261) üzenetére


biker
nagyúr

szuper, köszi.
Egyszer csináltam olyat, hogy X checkbox pipálás esetén a mellette lévőt is pipálja be, ott mintha a closest megoldás lett volna, de lehet rosszul emlékeztem.
Kikeresem...
ja, nem, az is next ber elem előtti következő checkbox volt, vagyis saját sorában a mellette lévő.

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3263) pckownz


pckownz
senior tag

if ( jQuery('.csomag.col-md-12').children().length >0 ) {
//donothing
}
else {
jQuery('.csomag.col-md-12').css('display', 'none');
};

Ha jol gondolom ez igy nem lesz tul effektiv egy tobbszor elofordulo div eltuntetesere, amennyiben tenyleg ures. Mivel tudnam a legpontosabban (es gyorsan) meghatarozni az adott ures divet? :R

(#3264) Zedz válasza pckownz (#3263) üzenetére


Zedz
addikt

(#3265) martonx válasza pckownz (#3263) üzenetére


martonx
veterán

Azzal, hogy szerver oldalon nem generálsz ki hülyeséget, amit utána js oldalon kell taszigálni...

Én kérek elnézést!

(#3266) pckownz válasza Zedz (#3264) üzenetére


pckownz
senior tag

Koszonom :R

(#3267) biker válasza disy68 (#3261) üzenetére


biker
nagyúr

Most vettem észre, hogy kicsi bibi, jelen esetben így a lenyomott gomb nevét nem is küldi el, mivel disabled-et nem küld formként :(
Megy a javítás javítása :)

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3268) biker válasza disy68 (#3261) üzenetére


biker
nagyúr

Van valami jó tipped erre? Ha disabled, nem megy el, button meg readonly nem lehet :(
Esetleg ne a tulajdonságát vegyem disabled-re, hanem tüntessem el? De ha nem visible, akkor se nagyon küldi el, nem?

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3269) DNReNTi válasza biker (#3268) üzenetére


DNReNTi
őstag

Szerintem ha nem visible akkor elküldi, de ha mégsem akkor még ott van az opció hogy beállítod az opacity-t 0-ra. ;) na az tuti elküldi.

but without you, my life is incomplete, my days are absolutely gray

(#3270) fordfairlane válasza DNReNTi (#3269) üzenetére


fordfairlane
veterán

Szerintem egy form submit szerveroldali kezelését meg lehet oldani anélkül is, hogy az elküldött paraméterek közt ott lenne a submit gomb name=value párja. Request metódusból, hidden mező értékéből, stb...

x gon' give it to ya

(#3271) biker válasza fordfairlane (#3270) üzenetére


biker
nagyúr

Teljesen igazad van, jelen esetben viszont a feldolgozó rendszert érdekli némely gomb neve :(
Nem mindé, csak pár

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3272) disy68 válasza biker (#3271) üzenetére


disy68
aktív tag

Én is azt tudom ajánlani, amit (#3270) fordfairlane is, hozzáadsz a formhoz egy hidden inputot a szükséges name-mel.

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#3273) fordfairlane válasza biker (#3271) üzenetére


fordfairlane
veterán

Esetleg a lenyomott submit gomb value-ját átmásolod egy hidden mezőbe.

x gon' give it to ya

(#3274) biker válasza fordfairlane (#3273) üzenetére


biker
nagyúr

Valami hasonló lesz valóban a megoldás.

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3275) biker


biker
nagyúr

Lenne egy újabb érdekesség
Van itt egy kódocska, ami figyeli, hogy vonalkód olvasóval írtak a be az input mezőbe
Ha igen, akkor többek közt lefut egy ellenőrzés is, hog jött e ö betű. Sajna van pár occsó vonalkód olvasó, amiben se ascii mode, se numpad emu mode, se magyar kiosztás nincs, így ö betűt küld nullára.
A trükk ott kezdődik, hogy ez tökéletes, de ha benne hagyom azt a sort, ahol írtam "ezzel van a baj", és olyan kódot olvasok le, amiben volt nulla, akkor a mezőt elhagyva nem triggerelődik egy másik on('change' function) hívás!

Tehát ha olyan vonalkódot olvasok le, amiben nem volt nulla, és ezért nem cserélt ki ö-t nullára, akkor ha beírtam, és elhagyom a mezőt, meghívja az on change-t, ha volt benne nulla, és ezért kellett ö-t nullára cserélni, akkor beírás és elhagyáskor nem hívja meg az adott on change elemet.

ez normális dolog?

$(document).ready(function() {
var pressed = false;
var input_mezo;
var chars = [];
$(window).keypress(function(e) {
if (e.which==246) e.which=48; //ezzel van a hiba!
if (e.which >= 48 && e.which <= 57) {
chars.push(String.fromCharCode(e.which));
}
console.log(e.which + ":" + chars.join("|"));
if (pressed == false) {
setTimeout(function(){
if (chars.length >= 8) {
var barcode = chars.join("");
console.log(window.input_mezo + "Barcode Scanned: " + barcode);
$(window.input_mezo).val(barcode);
}
chars = [];
pressed = false;
},500);
}
pressed = true;
});
});

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3276) disy68 válasza biker (#3275) üzenetére


disy68
aktív tag

Egyrészt az event.which használata nem ajánlott, depricated állapotú. Másrészt ez egy read-only property, úgyhogy nem tudod felülírni. Rakd ki külön változóba és azt ellenőrizd.

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#3277) biker válasza disy68 (#3276) üzenetére


biker
nagyúr

értem, hogy a which deprecated, de ez nem válasz a problémára.
kiraktam külön változóba, és lecseréltem, bár marhára nem readonly, símán működött a felülírás safariban
Uganúgy nem hívódik meg az onchange esemény, mint eddig
ha olyan kódot olvasok be, amiben nem módosítom a 0-ö párost, lefut ha tab-al kilépek belőle, ha módosulós, nem fut le.ezt hogy?
mindjárt levideózom.

itt a video (ami lemaradt, ha copy-paste a 5999561010311 kód akkor is lefut az onchange event)
1-2 mezőket kézzel írtam be, utána mindent vonalkóddal, látható, meg se hívja az eseményt, és nem az a baj, meghívja, de nem találja a terméket
[link]

[ Szerkesztve ]

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3278) biker válasza disy68 (#3276) üzenetére


biker
nagyúr

amúgy mit használjak helyette?
Mert azon kicsit sírva röhögök, hogy ez deprecated, + a keycode és a charcode is deprecated, használjam a KeyboardEvent.key a doku szerint
Annak meg a kompatibilitása szerintük:

Hát azt hiszem kihagyom, megvárom míg használható lesz. Vagy mi a jó alternatíva?

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3279) dqdb válasza biker (#3277) üzenetére


dqdb
nagyúr

marhára nem readonly, símán működött a felülírás safariban
Az, hogy egy implementáció mit enged meg és mit nem, az nem érdekes jelen esetben. Az, hogy a szabvány szerint readonly, az az igazán érdekes. Onnantól kezdve, hogy te módosítasz egy egy ilyen mezőt, a böngésző erre adott reakciója nem lesz előre megjósolható (egy JS-ból lekezelhető exception lenne a legtisztább erre). Valószínűleg az esetedben az event handler hatására a Safari JS implementációja vagy egyszerűen dob egy exceptiont belül, és emiatt szakad meg az eseménykezelési lánc, vagy a visszatérése után észreveszi, hogy megváltozott az esemény, és ennek hatására úgy dönt, hogy ez már nem az az esemény, és megáll a feldolgozásával.

Hát azt hiszem kihagyom, megvárom míg használható lesz. Vagy mi a jó alternatíva?
Például az ilyen esetekben helyes fallback. Ha van KeyboardEvent.key, akkor azt használod, ha nem, akkor jöhet a legacy megoldás. Amúgy ez a mező is readonly.

Két megoldásod van:
1. te kezeled le a billentyűzeteseményeket teljesen, és módosítod a mező értékét ennek megfelelően
2. az átfordítandó billentyűzeteseményt lenyeled, és generálsz helyette egy új billentyűzeteseményt

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#3280) biker válasza dqdb (#3279) üzenetére


biker
nagyúr

Én is erre jutottam, hogy a beírás az aktiválná az onchanget, de utána ha módosítom, már nem jó
Kipróbálom, mi van ha fókusz elvételre hívom az eseményt
Amúgy kiraktam változóba, és ott bizgetem. De ugye azt is csak akkor, ha vonalkód olvasó volt. Kézzel tudsz ö betűt ütni ha akarsz, pl szörp

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3281) biker válasza biker (#3280) üzenetére


biker
nagyúr

focusout tökéletesen működik :)

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3282) Randomized


Randomized
csendes tag

Sziasztok!
Egy kis segítségre lenne szükségem jQuery-AJAX-PHP kombinációban, remélem jó helyen járok. :D
Szóval fejlesztek egy weboldalt, minden okénak tűnt. Windows-on tesztelem XAMPP programcsomaggal, localhost-on szoktam tesztelni. Megpróbáltam havernak megmutatni, hogy tesztelje le a dolgokat, hátha talál benne hibát, de neki nem volt jó egy része (mindjárt írok részleteket is). Szóval megpróbáltam én is, nálam jó volt (megint csak localhoston próbáltam). Utána megpróbáltam én is úgy, hogy beírtam az IP-címemet, azzal nekem sem volt jó.

Egy olyan dolgot akartam megcsinálni, hogy például regisztrációkor a script elküldi a form tartalmát egy PHP-nak, ami feldolgozza az adatokat, és értesíti a felhasználót az oldal újratöltése nélkül az eredményről.
Bejelentkezésnél is hasonló a helyzet. Kiírja, hogy sikerült bejelentkezni, de mégsem működik a dolog.

$_SESSION-al oldanám meg, ha ez számít.

Tehát ha "localhost" címen próbálkozok, akkor jó, de ha bármilyen IP-címen próbálkozok (pl. 127.0.0.1, 192.168.1.109) akkor a PHP-tól megkapja a választ, a php temp mappájában látszik is, hogy létrehozza a session adatait tároló fájlt, megnyitom és valóban benne vannak, a dolgok, amiknek ott kell lenniük.

Remélem valaki tudja, hogy miért csak akkor működik, ha localhoston nyitom meg az oldalt. Előre is köszi a segítséget :)

(#3283) martonx válasza Randomized (#3282) üzenetére


martonx
veterán

Remélem érzed, hogy ezt a kérdést a PHP topikban kellene feltenned?

Én kérek elnézést!

(#3284) Randomized válasza martonx (#3283) üzenetére


Randomized
csendes tag

Remélem tudsz olvasni, és észre vetted, hogy azzal kezdtem, hogy "emélem jó helyen járok." :)
Egyébként azért gondoltam, hogy ide tartozik, mert a PHP résszel nincs gondom, a jQuery-ben nem vagyok biztos. De a kedvedért átírom oda is. :)

(#3285) Sk8erPeter válasza Randomized (#3284) üzenetére


Sk8erPeter
nagyúr

Az a baj, hogy a hibaleírásból még az sem derül ki egyértelműen, hogy melyik "szereplő" lehet a probléma okozója, mert konkrétabb kódrészletek vagy pontosabb körülírás nélkül nem lehet kitalálni. Némi kód előrébb vihet.

Sk8erPeter

(#3286) Randomized válasza Sk8erPeter (#3285) üzenetére


Randomized
csendes tag

Script:
$(document).ready(function(){
var alert = $('#alert');

$("form:not('#regis'):not('#ranglista')").submit(function(e){
e.preventDefault();
var triggeredform = $(this);
$.ajax({
type: 'POST',
url: pageurl+$(this).attr('action'),
data: $(this).serialize(),
dataType: 'json',
encode: true
})
.done(function(data){
console.log(data);

if(!data.success){
//Ha nem sikerül
var errormessage = '';
$.each(data.errors,function(index,value){
errormessage = errormessage + value + '<br/>';
})
alert.css("background","#990000").html(errormessage).fadeTo(500,0.8).delay(3000).fadeOut();
}
else
{
//Ha sikerül
alert.css("background","#00FF00").html(data.message).fadeIn().delay(2500).fadeOut();
console.log(this);
// triggeredform.fadeOut();
if(data.reload == true)
{
window.setTimeout(function(){
window.location.href = pageurl+data.tourl;
},data.timeout * 1000)
}
}



}).fail(function(data){
alert.css("background","#FF0000").html("Szerver oldali hiba").fadeTo(500,0.8).delay(5000).fadeOut();
});

});


});

Feldolgozó PHP:
<?php

error_reporting(0);

require("config.php");
require("functions.php");
session_name("MyHomePage");
session_start();
$conn = mysqli_connect($conf_host, $conf_user, $conf_password);
$errors = array();
$data = array();

if(empty($_POST['userid']))
{
$errors['user'] = 'Nem adtál meg felhasználó nevet!';
}

if(empty($_POST['userpass']))
{
$errors['pass'] = 'Nem adtál meg jelszót!';
}

if(!isset($errors['user']) && !isset($errors['userpass']))
{
$user = mysqli_real_escape_string($conn,$_POST['userid']);
$pass = mysqli_real_escape_string($conn,$_POST['userpass']);
$query = mysqli_query($conn,"SELECT * FROM hp.users WHERE name LIKE '$user' AND password=PASSWORD('$pass') LIMIT 1");
if(mysqli_num_rows($query) != 1)
{
$errors['login'] = 'Hibás felhasználó név vagy jelszó!';
}
}

if(!empty($errors))
{
$data['success'] = false;
$data['errors'] = $errors;
}
else
{
$userinfo = mysqli_fetch_object($query);
$_SESSION['user_id'] = $userinfo->id;
$_SESSION['user_name'] = $userinfo->name;
$_SESSION['user_rank'] = $userinfo->rank;
$data['success'] = true;
$data['message'] = "Sikeres bejelentkezés!";
$data['reload'] = true;
$data['tourl'] = "/?oldal=felhasznalo";
$data['timeout'] = 0.5;

}

echo json_encode($data);
?>

(#3287) martonx válasza Randomized (#3284) üzenetére


martonx
veterán

Nos ez esetben nincs más dolgod, mint debugolva megnézned, hogy mi történik / nem történik meg. PHP-t xdebug-al tudod debugolni, javascriptet meg a kedvenc böngésződdel.

Én kérek elnézést!

(#3288) Sk8erPeter válasza Randomized (#3286) üzenetére


Sk8erPeter
nagyúr

Ha jól értettem, valójában szerveroldalon az látszik, hogy tényleg sikeres a belépés - vagy mégsem? -, csak kliensoldalon nem gömbölyű valami, de ezt nem fejtetted ki - igazából a lényeget -, hogy mi is nem működik egész pontosan. Maga az oldal újratöltése nem történik meg? Vagy újratöltés után mégsincs bejelentkezve már a felhasználó, pedig korábban úgy tűnt, hogy be van jelentkezve - tehát mégis szerveroldali a para? Vagy kliensoldalon nem látszik valami úgy, ahogy látszania kellene? Vagy mi (nem) történik?

Ezt az alábbit még azelőtt írtam, hogy visszaolvastam volna, és láttam volna, hogy elméletileg be van jelentkezve a júzer (de lehet, hogy csak úgy tűnik, pedig igazából nem), végül is a benne írtak állnak továbbra is, de mivel itt OFF, meg valószínűleg nem is itt lesz a megoldás, ezért OFF-ba is raktam:
A PHP-kódnál sokat segít hibafelderítés esetén, ha nem nyomod el a hibakijelzést az error_reporting 0-ra állításával (persze kizárólag fejlesztői, nem production környezetben).
Egyébként a potenciális hibák lekezelése finoman szólva nem túl alapos, pl. csatlakozás után egyáltalán nem ellenőrzöd, hogy minden rendben ment-e az adatbázissal való kapcsolat létrehozása során. A mysqli_query visszatérési értékét is érdemes lenne leellenőrizni, mielőtt ráhívsz a visszaadott eredményre egy mysqli_num_rows-t - igaz, ennek elméletileg nullát kellene visszaadnia, ha már eleve előtte a query sem futott le helyesen.
A mysqli_real_escape_string-es bohóckodás nagyon rossz és rég elavult gyakorlat, helyette parametrizálni kell a query-t (lásd itt), és a nyelvi eszközök pedig elintézik, hogy az átpasszolt paraméterek le legyenek kezelve (rosszindulatúság és egyéb szempontokkal kapcsolatban).
Másik hiba: beállítod az $errors['pass']-t, és aztán később ellenőrzöd, hogy !isset($errors['userpass'])-t. :) (másik kulcs, pass vs. userpass... :) ) Egyébként sem sok értelmét látom, hogy más kulcsot használsz fel az $errors tömbödben, mint az eredetileg klienstől (a formban az adott mező name attribútuma formájában) kapott kulcsoknál.
Egyébként mysqli-nél szerintem nagyon csúnya a procedurális formula, az objektumorientált API nem véletlenül áll rendelkezésre, de persze ízlések és pofonok.

Sk8erPeter

(#3289) trisztan94


trisztan94
őstag

Hali,

Van egy <span> elemem aminek a tartalma nagyon sok külböző helyről tud módosulni. Ahelyett, hogy mindre kötnék egy eseménykezelőt, magát a <span> tartalmát akarom folyamatosan nézni, és amennyiben módosul a szöveg benne, lefuttatni egy függvényt.

Próbáltam:

$('span').on('change', fn(e){});
$('span').on('contentchanged', fn(e){});
$('span').on('DOMCharacterDataModified', fn(e){});
$('span').on('DOMSubtreeModified', fn(e){});

Egyik sem jó.

Valakinek ötlet?

:R

[ Szerkesztve ]

https://heureka-kreativ.hu

(#3291) trisztan94 válasza Sk8erPeter (#3290) üzenetére


trisztan94
őstag

Pont ez kellett, koszi! :R

https://heureka-kreativ.hu

(#3292) PowerBuldog


PowerBuldog
veterán

Sziasztok!

Írtam egy rövid kódot:

jQuery(document).ready(function($){
$('input[name="addon-1131-csomagolasszallitas-1[]"]').prop('checked', true).attr("disabled", true);;
});

Szépen működik, kipipálja a szállítási díjat. Azonban az a gondom, hogy amikor a terméket a kosárba rakom nem számolja fel a kötelező szállítási díjat. Azonban ha ugyan ezt a checkboxot kézzel pipálom ki akkor jó.
Mi lehet a baja?

Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html

(#3293) DNReNTi válasza PowerBuldog (#3292) üzenetére


DNReNTi
őstag

Tippem:
A checkbox kattintásra van event listener, ami beállít egy változót, hogy számolja vagy ne a szállítási ktg-et, de ez nem fut le, ha te prop()-al beállítod a checkbox állapotát. Megoldás ha a prop() mellett, beállítod ezt a változót ilyenkor is, vagy a másik: triggert() használsz. Remélem beletrafáltam.

but without you, my life is incomplete, my days are absolutely gray

(#3294) PowerBuldog válasza DNReNTi (#3293) üzenetére


PowerBuldog
veterán

Sajnos úgy tűnik se a trigger('change') se a trigger('click') nem hoz változást, nem adódik hozzá a végösszeghez ebben a formában

Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html

(#3295) disy68 válasza PowerBuldog (#3292) üzenetére


disy68
aktív tag

Szerintem az, hogy disabled-re állítod. Ha később a form a .serialize() -zal lesz kiértékelve, az kihagyja a disabled inputokat.

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#3296) PowerBuldog válasza disy68 (#3295) üzenetére


PowerBuldog
veterán

azzal semmi baj nem volt, kellett bele egy ilyen sor
$('.cart').trigger('woocommerce-product-addons-update');

és már megy is :)

Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html

(#3297) PowerBuldog


PowerBuldog
veterán

üdv

adott lenne 2 legördülő menü.
mindkettőben ugyan azok az értékek vannak
lehetséges-e, hogy ha beállítom az elsőt, akkor a második értéke is ugyan azt felveszi?

Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html

(#3298) martonx válasza PowerBuldog (#3297) üzenetére


martonx
veterán

persze :)

Én kérek elnézést!

(#3299) PowerBuldog válasza martonx (#3298) üzenetére


PowerBuldog
veterán

és esetleg tudsz ebben segíteni is? :)

Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html

(#3300) martonx válasza PowerBuldog (#3299) üzenetére


martonx
veterán

Ha csinálsz egy konkrét jsfiddle példát (mondjuk a hülye kérdésre hülye választ ezzel alapból megspórolhattad volna), akkor én vagy bárki más szívesen segít ebben.

Én kérek elnézést!

(#3301) trisztan94


trisztan94
őstag

Van egy elemem, ami oldalbetöltéskor nem létezik, valamikor a jövőben lesz létrehozva (lazy loados). Arra az elemre szeretném a Sk8erPeter által linkelt MutationObserver-t rákötni, viszont elszáll egy olyan hibával, hogy a megadott elem (nyilván document.getElementById-val hivatkozva) nem egy létező node.

Ha jól emlékszem, lehet jQuery-vel delegálni, viszont arra nem emlékszem, hogy hogyan lehetne azt megoldani, hogy bizonyos function-ök csak akkor legyenek parse-olva, amikor az elem létezik.

Próbáltam:

$('#elem').load(function(){});
$('#elem').ready(function(){});

Viszont a callbackban lévő kódra ugyanúgy kapom a hibát.

Valakinek van esetleg ötlete erre?

https://heureka-kreativ.hu

(#3302) martonx válasza trisztan94 (#3301) üzenetére


martonx
veterán

Egyszerű, csak akkor kösd rá a MutationObserver-t, amikor már létezik, azaz amikor a LazyLoad már betöltötte az elemet :)

Én kérek elnézést!

(#3303) trisztan94 válasza martonx (#3302) üzenetére


trisztan94
őstag

Az a baj, hogy nem tudom, hogy pontosan hol, hogyan, és mikor jön létre az elem, nincs hozzáférésem ahhoz a script fájlhoz. Annyit tudok, hogy majd valamikor a jövőben létrejön az elem valahol.

https://heureka-kreativ.hu

(#3304) Sk8erPeter válasza trisztan94 (#3303) üzenetére


Sk8erPeter
nagyúr

Ez esetben szerintem kénytelen vagy a jövőben létrejövő elem szülőelemére is aggatni egy MutationObservert, és figyelni a gyerekelemek változását, hogy mikor kerül hozzáadásra, és amikor a várt elem létrejöttét detektálod, akkor csapod hozzá a további MutationObservereket, ahogy martonx írta. (A szülőelemen childList vagy subtree attribútumok vmelyikével, most telóról vagyok, nem tudom kipróbálni.)

Sk8erPeter

(#3306) tboy93


tboy93
nagyúr

Sziasztok! Hogyan tudom kideriteni a jQuery segitsegevel egy objektumrol, hogy az egy masik objektumbol szarmazik-e?

(#3307) fordfairlane válasza tboy93 (#3306) üzenetére


fordfairlane
veterán

Nem jquery specifikus:

<script>
var nagyszulo = {};
var szulo = Object.create(nagyszulo);
var nemszulo = {};
var gyerek = Object.create(szulo);

console.log(nagyszulo.isPrototypeOf(gyerek)); // true
console.log(szulo.isPrototypeOf(gyerek)); // true
console.log(nemszulo.isPrototypeOf(gyerek)); // false
console.log(gyerek.isPrototypeOf(gyerek)); // false
</script>

x gon' give it to ya

(#3308) tboy93 válasza fordfairlane (#3307) üzenetére


tboy93
nagyúr

ezer koszonet :R

(#3309) kw3v865


kw3v865
senior tag

Sziasztok!

A következő kérdésre keresem a megoldást: adott ez a GET (a számunkra most lényegtelen részeket kiszedtem belőle):

$.ajax('http://xxx', {
type: 'GET',
data: {
sortBy: 'id2',
}
}
)

Ez így tökéletesen működik, azonban, ha.
sortBy: 'id2+D',

Akkor ezt a hibát dobja:

java.lang.ClassCastException: java.lang.Double cannot be cast to org.opengis.feature.type.AttributeDescriptor
java.lang.Double cannot be cast to org.opengis.feature.type.AttributeDescriptor

És ez lesz belőle: sortBy=id2%2BD

Tehát a '+D'-vel van baja.
Ha ezt rendesen URL-lel hívom meg a böngészőbe begépelve (tehát nem ajax-szal), akkor pedig tökéletesen működik.

Van valami ötletetek mi okozhatja ezt, és mi lenne rá a megoldás?

(#3310) martonx válasza kw3v865 (#3309) üzenetére


martonx
veterán

Elég nyilvánvalóan a 'id2+D' szerver oldalon Double-é szeretne fodulni, miközben ez ugyebár nem egy szám, hanem egy string :) Hogy mit is szeretnél szerver oldalon kapni, és miért azt rád bízom, ha az a cél, hogy stringként jelenjen meg, akkor gondolom url escapelni kellene a stringedet, vagy valami ilyesmi.
Igaziból a problémádnak semmi köze a jqueryhez.

Én kérek elnézést!

(#3311) kw3v865 válasza martonx (#3310) üzenetére


kw3v865
senior tag

Na meg is találtam már a megoldást: a '+'-t kellett kiváltanom egy szóközzel. :C

(#3312) martonx válasza kw3v865 (#3311) üzenetére


martonx
veterán

Igen, gyakran nem árt, elolvasni, és értelmezni a hibaüzeneteket :B

Én kérek elnézést!

(#3313) biker


biker
nagyúr

Lenne egy kis segítségkérésem, fullcalendar ügyben.
A support kicsit nehézkes, és bár adnak tanácsokat, egy ponton elakadtam.
Az erőforrásokat nem normál módon kell betöltenem, hanem funkcióként, mert különben egy megjelenítési bugba ütközünk, ehhez a gyári doksi ez
[link]
Ebből is kellene az a verzió, ami start-end időpontot is hozzáad, így valahogy
resources: function(fetchInfo, successCallback, failureCallback) {
somethingAsynchonous({
start: fetchInfo.start,
end: fetchInfo.end,
timeZone: fetchInfo.timeZone
}, function(resources) {
successCallback(resources);
});
}

});

Viszont egy korábbi debugolás eredményeképpen extra késleltetés is hozzá lett adva a betöltéshez, és így néz ki a kód, amit szintén a support küldött

resources: function(fetchInfo, successCallback, failureCallback) {

const request = new Request('myresources.php'); //lekéri a naptáramat

fetch(request)
.then(response => response.json())
.then(data => {successCallback(data)})
.then(function() {
// workarounds to fix rendering issues after resources are loaded
calendar.render()
calendar.changeView(calendar.view.type)
})
.catch(function(err) {
console.log('Fetch error', err);
failureCallback()
});

},

Namost ide hogy illesszem be a start-end paramétereket, hogy megkapja változóként?
Nem vagyok egy js/jquery ninja :) Amit eddig tippeltem, nem volt jó

[ Szerkesztve ]

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3314) biker válasza biker (#3313) üzenetére


biker
nagyúr

Na, csak ki kellett írjam, és megvan a jó verzió

var resourceUrl = 'myresources.php';
resourceUrl += '&start=' + fetchInfo.start.toISOString();
resourceUrl += '&end=' + fetchInfo.end.toISOString();
resourceUrl += '&timeZone=' + fetchInfo.timeZone;

const request = new Request(resourceUrl);

Érdekes, hogy ez meg nem működött

const request = new Request('myresources.php?start=' + fetchInfo.start.toISOString() + '&end=' + fetchInfo.end.toISOString());

Túl akartam egyszerűsíteni?

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3315) indigo


indigo
aktív tag

Sziasztok!
A következőkben kérném a segítségeteket.
Egy olyan billentyűzet gyakorló kis programot írok html-css-jquery alapon, amellyel kisgyerekek gyakorolhatnák a gombok leütését. A program a Play gomb megnyomása után beolvas egy sztringet, majd megjeleníti annak első karakterét egy kis téglalapban. Ekkor le kellene nyomni azt a karakter a billentyűzeten és az kiíródik az oldalra egy divbe. Valamint a kis téglalapban megjelent karakter is kiíródik az oldalon egy másik divbe. Pause gombbal megszakíthatom a feladatot.
Sajnos már itt hibákba ütköztem. Ha egyesével begépelgetem a karaktereket, akkor végig fut rendesen a beolvasás-kiírás a divekbe. Ha viszont menet közben megszakítom a feladatot a Pause gombbal, akkor a következő vagy utáni alkalommal már nem fogad el semmilyen bevitelt, egyből a sztring teljes tartalmát jeleníti meg. Példa.
A fejlettebb változat ellenőrzésekor rájöttem, hogy a sztring i-edik eleme az utolsó karakternél undefined. Valamint, ha újra kezdem a feladatot, akkor az i-edik elemnek két értéke lesz ugyanazon betűnél. Harmadjára kezdve három értéke lesz, stb.
Minden segítséget megköszönök.

(#3316) oOKitsuneOo válasza indigo (#3315) üzenetére


oOKitsuneOo
tag

-

[ Szerkesztve ]

(#3318) Agostino


Agostino
addikt

sziasztok

eléggé leült a topik de hátha még valaki látogatja. [ezzel a kis dropdown] menüvel szenvedek egy ideje, nem tudom miért makacsolja meg magát. az volna a lényeg, hogy szintenként lefele haladva specifikálhatom, hogy mi érdekel. az 1-4 kategória hibátlanul továbbpasszol, viszont az 5. szinten már nem veszi át a 4. szintben kiválasztott opciót, vagyis kettő megmaradt lehetőség helyett mind a létező négyet kihozza... ideális esetben Fagyasztott / Friss vagy Keresztbe / Hosszába párosnak kellene megmaradnia.

                          hey friend listen, i know the world is scary right now but its gonna get way worse

(#3319) DrojDtroll


DrojDtroll
addikt

Sziasztok!

Van eszköz amely megmondja, hogy egy adott jquery verzióval melyik legfirsebb verzió kompatibilis?

(#3320) biker


biker
nagyúr

Üdv, létezhet az, hogy a $(document).one('ready', function () {.........
nem fut le ha a háttérben hívják meg?

Van egy kis script, ami szinkronizálna adatot, elküldött emailcím alapján lekérdez az adatbázisból több adatot, és visszaküldi a wordpressnek.
Írtam rá egy tesztet, megnyomok egy gombot, post-al elküldöm az emailt, visszajön az adat, illetve beírodik a wp-be
ha a wp-n fut le a háttérben a hívás, vagyis nem generál kimenetet a böngészőre, akkor a felhasználó szerint nem jön vissza az adat a wp-be

Létezhet hogy nem lesz "document ready" ha nincs kimenet? elég egy "ok" sor kiírás (a semmibe) vagy mi a megoldás?

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3321) biker válasza biker (#3320) üzenetére


biker
nagyúr

közben raktam naplózást mindenre is, valóban, ha böngészőből küldök post-al adatot, és ablakban nyílik meg a fogadó file, akkor lefut a script, és elküldi tovább az adatot, ha háttérben hívjuk meg akkor nem fut le

<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script>
$(document).one('ready', function () {
function submitForm() {
var data = {
'email-1': '<?php echo $newdata[0]['emailcim']; ?>',
'text-1': '<?php echo $newdata[0]['user_id']; ?>',
'text-2': '<?php echo $newdata[0]['user_ean']; ?>',
'date-1': '<?php echo date("Y-m-d", $newdata[0]['berlet_erv']); ?>',
'text-3': '<?php echo $newdata[0]['berlet_menny']; ?>'
};

jQuery.ajax({
url: 'https://www.**************l.hu/wp-admin/admin-post.php',
method: 'POST',
data: {
'action': 'submit_form_data',
'email-1': data['email-1'],
'text-1': data['text-1'],
'text-2': data['text-2'],
'date-1': data['date-1'],
'text-3': data['text-3']
},
success: function(response) {
// Sikeres válasz esetén itt kezelheted a választ
console.log("Sikeres adatküldés", response);
},
error: function(xhr, status, error) {
// Hiba esetén itt kezelheted a hibát
console.log("Adatküldés sikertelen", error);
}
});

jQuery.ajax({
url: 'https://*******************.hu/logger.php',
method: 'POST',
data: {
'action': 'submit_form_data',
'email-1': data['email-1'],
'text-1': data['text-1'],
'text-2': data['text-2'],
'date-1': data['date-1'],
'text-3': data['text-3']
},
success: function(response) {
// Sikeres válasz esetén itt kezelheted a választ
console.log("Sikeres adatküldés", response);
},
error: function(xhr, status, error) {
// Hiba esetén itt kezelheted a hibát
console.log("Adatküldés sikertelen", error);
}
});
}

submitForm(); // Az adatküldés indítása

});
</script>

Ez után van egy logger a php-ben:
$log=$_POST['test']." ".$_POST['user_emailcim']." >> ".$newdata[0]['emailcim']." >> ".date("Y-m-d", $newdata[0]['berlet_erv'])." >> ".$newdata[0]['berlet_menny']." >> ".$newdata[0]['user_id']." >> ".$newdata[0]['user_ean'];
file_put_contents("uploads/".microtime().".txt",$log);

ez menti a küldött adatokat ha a php lefutott, ugyanez van a logger.php-ben amit már a futó js hívna meg

Ha egy test.php-ből submitolok, akkor két log fileom lesz, adatokkal, ha háttérből (egy wp-n generált gomb, szintén jqueryvel küld adatot ide). akkor csak a php log íródik ki, minden adat helyes, de a document ready rész nem hívódik meg. Ezek szerint a háttérben generált oldal mivel nincs tartalom, nem generál document ready eventet sem?

[ Szerkesztve ]

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3322) DNReNTi válasza biker (#3321) üzenetére


DNReNTi
őstag

Nem vagyok benne 100% biztos, hogy ertem pontosan mi zajlik, de ha megis jol ertem, arrol van szo, hogy valami hatterfolyamatban nem fut meg a script-ed. Mivel a javascript a bongeszoben fut, igy ez termeszetes, nem is fog megfutni. HA jol ertem.

but without you, my life is incomplete, my days are absolutely gray

(#3323) biker válasza DNReNTi (#3322) üzenetére


biker
nagyúr

akkor jól tippeltem, átírom...

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#3324) emre33 válasza biker (#3321) üzenetére


emre33
addikt

Ezt inkább így kellene futtatni.....

$(document).ready(function(){

});

ASUS B650E-E, AMD Ryzen 9 7900, CORSAIR 64GB DDR5 6000MHz CL30 KIT CMK64GX5M2B6000Z30, ARCTIC COOLING Liquid Freezer II 360

Útvonal

Fórumok  »  Szoftverfejlesztés  »  jQuery topic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.