Új hozzászólás Aktív témák
-
válasz trisztan94 #2050 üzenetére
$_POST[action] => $_POST['action'] !!! E_NOTICE különben
Ha egy string értéke egy meghívható függvényé, már működik (simán: $action()). Ha mondjuk visszamegy kettő, akkor pl. meg lehet oldani egy statikus metódushívást is, de akár elő lehet szedni egy megfelelő objektumot is, majd instance szintű metódust lehet hívni (call_user_func vagy call_user_func_array), gyakorlatilag így tud működni pl. egy MVC keretrendszer routing-ja is, egyszerű konvención alapszik.
Igen, ASP.NET-ben is így van, de konvenció szerint az action az egy (MVC-ben ActionResult-ot visszaadó) metódus neve.
[ Szerkesztve ]
-
szmegma
aktív tag
Atultettem egy teszt erejeig a kodot:
http://agyhalott.net23.net/test.php
Ez a POST-os megoldas nem jo, ui. akkor az "Utolsó frissítés: 2013 April 21." reszt torli a BODY-bol.
Egyebkent miert baj, hogy a visszatero adatot szeretnem szurni? Ezert lenne a filter() es find() fuggveny nem?Jelenleg itt tartok es itt all meg a tudomanyom. Kattintsatok az egyik szamra (1,2,12)
Betoltodik az adott id-ju cucc es a lapozo is atvaltozik ahogy kell. Viszont ha most kattintani akartok megint az egyik szamra, miert nem tortenik semmi?
Az error consol nem dob hibat, a duplazast is sikerult megoldani, erre jon ez az idegesito inaktivva valas...TV: JZ1000
-
trisztan94
őstag
válasz szmegma #2052 üzenetére
"Egyebkent miert baj, hogy a visszatero adatot szeretnem szurni? Ezert lenne a filter() es find() fuggveny nem?"
Feleslegesen lassítja az oldalt. Nem egyszerűbb csak azt az adatod visszakérni amire ténylegesen szükséged van, nem kell szűrni? A te megoldásoddal így megy végig:
Elküldi a kérést a PHP-nak, ami visszaküldi az összes adatot. Ezt visszaküldi a scriptednek, ami végigmegy az adathalmazon amíg nem találja meg azt amire neked szükséged van (ha jól tudom a .find() lineárisan keres, nem? - a lineáris keresés a leglassabb keresés - szintén amennyiben jól tudom, javítsatok ki, ha tévedek), majd berakja neked a html-edbe.
Szűrés nélkül, ha csak arra kérsz kérést amire ténylegesen szükséged van:
Elküldi a kérést PHP-nak, ami feldolgozza azt amit mondtál neki, visszaküldi a scriptnek azt a specifikus dolgot amit kértél, a script meg beülteti a html-be.
Nem kell feleslegesen végigmenni az összes adaton, mivel tudod, hogy tutifrutti azt kapod amit kértél.
"Ez a POST-os megoldas nem jo, ui. akkor az "Utolsó frissítés: 2013 April 21." reszt torli a BODY-bol."
Átírtad a PHP fájlod, hogy működjön a POST-os megoldással? Ha nem, akkor nyilván nem fog működni. Ha nem érted a PHP-t, akkor írj a PHP fórumba, ott majd eligazítanak, hogy hogy kéne kinéznie.
Nekem amúgy nem törli az "utolsó frissítés" izét.Pontosan amúyg mit szeretnél elérni? Gondolom azt, hogy újratöltés nélkül tudja a user lapoztatni az oldalt, nem?
Amúgy szerintem azért válik inaktívvá a lapoztatás mert azt is minden kérés után újra betöltöd, azt külön kéne rakni az ajaxtól és egy változót létrehozni php-ban, ami visszaküldi a scriptnek, hogy hanyadik oldal volt előbb nyitva, vagy valami ilyesmit és onnantól kezdve gyerekjáték.
szerk:
Alapból a HTML kódod is elég zavaros, minek ennyi div?
<div id="news-tartalom" style="padding-bottom:1px;">
<div id="news" class="module">
<div>
<div>
<div>
<h3>CUCC</h3>
<div class="datum"> 2012 Október 20.</div>
<div class="hirek">bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</div>
</div>
</div>
</div>
</div>
<div style="position:relative;width:370px;margin:0px auto 0px auto;padding:0;text-align:center;color:#999999;">
</div>elég lenne így:
<div id="news-tartalom" style="padding-bottom:1px;">
<div id="news" class="module">
<h3>CUCC</h3>
<div class="datum"> 2012 Október 20.</div>
<div class="hirek">bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</div>
</div>
<div style="position:relative;width:370px;margin:0px auto 0px auto;padding:0;text-align:center;color:#999999;">
</div>[ Szerkesztve ]
https://heureka-kreativ.hu
-
Jim-Y
veterán
válasz trisztan94 #2053 üzenetére
Az egész zavaros, szerintem egyszerűbb lenne, ha leírná, hogy alapból mit szeretne, és akkor arra adnának az okosok választ, példakódot, etc...
-
szmegma
aktív tag
Jim-Y -> Ott van a test link, azt szeretnem megoldani, hogy mukodjon. Megnezted a linket? Az elso kattintas erejeig mukodik, utana a lapozo inaktivva valik a kattintasra.
trisztan94 -> Szűrés nélkül, ha csak arra kérsz kérést amire ténylegesen szükséged van:
Elküldi a kérést PHP-nak, ami feldolgozza azt amit mondtál neki, visszaküldi a scriptnek azt a specifikus dolgot amit kértél, a script meg beülteti a html-be.
Ertem a PHP-t, de hiaba irok ra egy fuggvenyt, hogy csak a szukseges adatokat kuldje vissza, a lapozo reszt ugy is ujra kell tolteni, hogy valtozzon az uj adatoknak megfeleloen. Ahogy pedig mondtad, ha ujra toltom, pont attol valik inaktivva.Amúgy szerintem azért válik inaktívvá a lapoztatás mert azt is minden kérés után újra betöltöd, azt külön kéne rakni az ajaxtól és egy változót létrehozni php-ban, ami visszaküldi a scriptnek, hogy hanyadik oldal volt előbb nyitva, vagy valami ilyesmit és onnantól kezdve gyerekjáték.
Ehhez a megoldashoz szerintem az egesz lapozot jQuery-ben kellene megirni, mivel jelenleg a lapozo PHP-s, es a script visszakuldott id-je alapjan azonositja a lap szamat.Ettol fuggetlenul nem zarkozom el attol, amit irtal; lehet en nem latom a fatol az erdot es neked van igazad, hogy a PHP-s fuggvennyel csak azt kuldjem vissza, amit frissiteni akarok. Viszont meg mindig nem ertem, hogyan fog valtozni igy a lapozo elrendezese.
TV: JZ1000
-
szmegma
aktív tag
<?
$max = 12;
if(isset($_POST['pg'])){
$num=$_POST['pg']-1;
$pg=$_POST['pg'];
}
else{
$num=0;
$pg=1;
}
$begin=$pg-1;
while($begin<1)
$begin++;
$end=$pg+1;
while($end>$max)
$end--;
for($j=1;$j<2;$j++){
echo'<tt id="lap.'.$j.'">'.$j.'</tt>';
}
if($pg>3){
echo'...';
}
for($i=$begin;$i<=$end;$i++){
if($i>1&&$i<($max)){
echo'<tt id="lap.'.$i.'">'.$i.'</tt>';
}
}
if($pg<($max-2)){
echo'...';
}
for($j=($max);$j<($max+1);$j++){
echo'<tt id="lap.'.$j.'">'.$j.'</tt>';
}
?>TV: JZ1000
-
Sk8erPeter
nagyúr
válasz szmegma #2044 üzenetére
"Termeszetesen tudom, hogy a $("span").html(returned_data); feltolti az osszes span-t a returned_data tartalmaval"
Na, akkor máris megvan az indok, miért ne csináld úgy, ahogy csináltad. Hülyebiztosra kell elkészíteni egy kódot, nem arra számítani, hogy "jó az vidékre"..."am az adott lapon csak ez az egy span van"
Ne viccelj már, amit itt megmutattál, abban a kódban egész pontosan 11 span is volt:
http://jsfiddle.net/jUECg/
Bár gondolom arra gondolsz, hogy ez a tartalom fog lecserélődni, a spanekkel együtt... de akkor is szar ez a kód így, nem szívatásból mondom, hanem azért, mert ezzel problémáid lesznek később, ha így kódolsz.
Szóval specifikáld jobban, milyen DOM-elemet szeretnél manipulálni, legyen beszédes a kódod!!
Vonatkozik ez tehát a spanre és a tt-re is.Miért ragaszkodsz a <tt> elemhez?
https://developer.mozilla.org/en-US/docs/HTML/Element/tt
ez már "obsolete", szóval ne használd. Ha teletype textre van szükséged, használj CSS-t. Amúgy is, szemantikailag is hibás a lapozó céljára <tt> elemet használni.Ahogy már a többiek is elmondták, nagyon rossz gyakorlat az, hogy a szerverről rengeteg felesleges adatot elküldesz a kliensnek, olyat is, amire nem kíváncsi, aztán kliensoldalon szűröd. Ezt a szokást felejtsd el örökre, csupán jótanács. Azt add vissza a kliensnek szerveroldalról, amire kíváncsi volt, és aminek érdemi funkciója van, ne többet, ne kevesebbet.
"Valamiert stingnek latja a visszatero tartalmat es nem objectnek, ezert syntax errort dob."
Érdemes olvasgatni a dokumentációt, ha problémával találkozol a kódod működése során, és nem érted, miért...
http://api.jquery.com/jQuery.ajax/
dataType
...
"html": Returns HTML as plain text; included script tags are evaluated when inserted in the DOM.Azt pedig a többiek már jól leírták, hogy a szervertől elkérendő adatokat szűrheted úgy, hogy megmondod neki, mit küldjön vissza, mégpedig a data-val, amire Jim-Y már mutatott neked példát.
Van példa a hivatalos oldalon is:
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});Ezt PHP-val a $_POST tömb részeként érheted el: $_POST[''name] és $_POST['location'], mivel meg lett adva, hogy POST-metódussal legyenek elküldve az adatok.
(#2052) szmegma
"Ez a POST-os megoldas nem jo, ui. akkor az "Utolsó frissítés: 2013 April 21." reszt torli a BODY-bol."
Nem a POST-tal való elküldéssel van a baj, hanem azzal, ahogyan megoldod. Egyébként lapozót NEM POST-tal szokás megoldani, hanem GET-metódussal! Így az URL könyvjelzőzhető, elküldhető másnak, és így tovább."Egyebkent miert baj, hogy a visszatero adatot szeretnem szurni? Ezert lenne a filter() es find() fuggveny nem?"
Adatszűrésre való, de nem arra, hogy a szervertől nyugodtan visszadobálj sokkal több adatot, mint amennyi kell, és aztán azt szűrögesd, azzal csak szívatod magad, a szerveredet és a klienst is. Felesleges terhelés.(#2055) szmegma
"Ehhez a megoldashoz szerintem az egesz lapozot jQuery-ben kellene megirni, mivel jelenleg a lapozo PHP-s, es a script visszakuldott id-je alapjan azonositja a lap szamat."
Félreérted. A lapozó először legyen úgy elkészítve, hogy JavaScript nélkül is működjön. Ezt tesztelgesd, és miután sikerült, azután az egészet lehet AJAX-osra megírni. Kipróbáltam, jelenleg egyáltalán nem működik JavaScript nélkül. Azért is fontos, hogy először úgy is működjön, mert akkor onnantól csak az egészet ugyanúgy át kell ültetni JavaScriptre, és megvagy.A lapozót az alján az AJAX-kérés után frissítened kell a szervertől visszakapott adatok alapján - amire az lesz a legegyszerűbb megoldás, ami amúgy is javasolt, hogy JSON-ben küldd vissza az adatokat a kliensnek a szervertől! Így mindenféle adatot tök egyszerűen ki tudsz nyerni a kliensoldalon.
A jelenlegi lapozód azért nem működik, mert az első lapbetöltéskor arra a lapozóelemnek a click eseményére iratkozol fel (a nálad látható $("tt").click(function(){})-nel), amit aztán eltüntetsz a DOM-ból az első AJAX-lekérés után, így mivel törlöd azt az elemet, az új lapozóelem click eseményére ismét fel kellene iratkoznod - erre való a jQuery.on():
http://api.jquery.com/on/A szervertől való JSON-adat visszaadására pedig vegyünk egy példát egyszerű spagettikóddal:
<?php
// blablabla...............
$dataToReturn = array();
$dataToReturn['status'] = false;
$dataToReturn['message'] = '';
$dataToReturn['page_nr'] = NULL;
$dataToReturn['data'] = NULL;
// na itt lekéred az adatot adatbázisból...
// viizsgálgatod, mi lett beállítva a $_POST tömbbe, megvan-e minden, ami kell az adatok visszaadásához, stb.
// ha volt valami gebasz, dobsz egy exceptiont, lekezeled, beállítod a felhasználóbarát hibaüzenetet a $dataToReturn['message']-be
if(para_volt) { // itt valami tisztességes kivételkezelésnek kéne lennie
$dataToReturn['status'] = false;
$dataToReturn['message'] = 'Para van...';
}
// egyébként meg a statust állíthatod true-ra:
// siker...
else {
$dataToReturn['status'] = true;
$dataToReturn['message'] = 'Sikeres blabla...';
$dataToReturn['data'] = '<p>ezmegaz</p>';
$dataToReturn['page_nr'] = 42;
}
echo json_encode($dataToReturn);
exit(0);aztán jQuery-vel tök egyszerűen lekezeled:
$.ajax({
type: "GET",
dataType: "json"
url: "valami.php",
data: { page: 12, akarmi: "asdasd" }
success : function(response) {
if(response.status == false) {
// hiba volt, kiírjuk, mondjuk a #content divbe, tételezzük fel, h van olyan
$('#content').text(response.message);
return false;
}
// egyébként meg sikeres volt a dolog
$('#content').html(response.data);
// mondjuk valahol frissíted a page_nr-t (csak példa)
$('#actual_page_nr').text(response.page_nr);
}
});Tényleg csak szemléltető kód, de szerintem (remélem) érthető, ha van kapcsolódó kérdésed, tedd fel nyugodtan.
Sk8erPeter
-
martonx
veterán
Amíg kollektívan próbáltok fényt gyújtani a sötétségben, mellékesen jegyzem meg, hogy nagyon csendben, de kijött a jquery 2.0
Kemény 12%-al lett csak kisebb, mint az 1.9.1, ennek megfelelően a sebessége sem gyorsult észrevehetően. Ez jóval kevesebb, mint amit vártam.Én kérek elnézést!
-
trisztan94
őstag
-
szmegma
aktív tag
válasz Sk8erPeter #2058 üzenetére
Elnezeseteket kerem a sotetseg leple alol, hogy nem szulettem tobb esszel, de szerintem nem szegyen az, ha mindent megteszek, hogy fejlesszem a hianyossagaimat.
Elkeszitettem a te es a tobbiek otlete alapjan az uj kodot, amiben a lapozo szinten csak az elso kattintasig mukodik. Igen, hasznaltam az .on() fuggvenyt, mielott megkerdezned:
UJ KOD <= Forras:TEST3 es FUNC
Raadasul, igy mar ket fajlra van szuksegem (test3.php es func.php), pedig szeretnem ugy megoldani, hogy egy fajl eleg legyen.Apropo, az irtad, hogy az en lapozom PHP resze nem mukodik. Akkor nalam miert jo?
LAPOZO
A szamot cserelgesd manualisan es lathatod, hogy rendben van.Epito jellegu kritikat szivesen fogadom, mint korabban, de az ilyen "lesotetezest" inkabb hagyjuk.
Szoval meg mindig en rontok el vmit vhol? Koszonom.TV: JZ1000
-
Male
nagyúr
válasz szmegma #2062 üzenetére
Gondolom azért mondja, mert JS nélkül sehol nincs belinkelve a többi oldal... ( ha igen, akkor bocs, nem néztem meg alaposan az oldalt )
Amúgy ha oldalakat töltesz be, akkor használhatod a .load() -ot is. (rövidebb, és kezdetben könnyebb szerintem)
Plusz a lapozó részt nem biztos, hogy célszerű újra tölteni, annak a módosítását JS-ben is elintézheted. -
Jim-Y
veterán
válasz szmegma #2062 üzenetére
Amugy az miért nem jó, ha magát a lapozót te állítod össze kliens oldalon js-el, úgy, hogy ajaxxal lekéred a php fájltól, hogy hány megjelenítendő oldalad van, azt javascriptben feldolgozod, és csak a tartalmat kéred le a szervertől lapozásra?
Sok hiba van benne, illetve joe editorban a szerveren írtam meg, nem akartam scpzni Ez csak egy skicc, de látszik, hogy mire gondolok.
-
szmegma
aktív tag
Amugy az miért nem jó, ha magát a lapozót te állítod össze kliens oldalon js-el, úgy, hogy ajaxxal lekéred a php fájltól, hogy hány megjelenítendő oldalad van, azt javascriptben feldolgozod, és csak a tartalmat kéred le a szervertől lapozásra?
Egy szoval sem mondtam, hogy nem jo, ha eszembe jutott volna, akkor eleve ugy csinalom.Most megyek melozni, ha haza jovok megprobalom amit linkeltel megoldast atultetni. Koszi.
TV: JZ1000
-
szmegma
aktív tag
Nahh pont errol beszeltem a #2055-os posztomban, mivel trisztan94 felhozott egy otletet, amire en azt irtam, hogy:
"Ehhez a megoldashoz szerintem az egesz lapozot jQuery-ben kellene megirni, mivel jelenleg a lapozo PHP-s, es a script visszakuldott id-je alapjan azonositja a lap szamat."
Erre Sk8erPeter (#2058) azt irta, hogy: "Félreérted."
Szoval akkor megis csak nekem volt igazam.Amiben viszont nektek volt igazatok, hogy feleslegesen kuldtem olyan adatot el, amit nem kellett volna es utana pedig szuresre kenyszerultem, mivel tele volt minden szarral a visszatero adat.
Ezzel terhelve a szervert, a klienst es magam mivel nem is mukodott.
Ezt megtanultam, koszonom nektek!TV: JZ1000
-
Sk8erPeter
nagyúr
válasz szmegma #2067 üzenetére
"Szoval akkor megis csak nekem volt igazam."
Kár, hogy nem igazán. Terveztem neked írni ismét egy hosszabb választ, hátha sikerül közös nevezőre jutni, és megérted a szempontokat, de ezután a válaszod után úgy látom, hogy nem igazán érné meg ezzel töltenem az időt. Igazából a múltkori, bőlére eresztett válaszból sem tudom, mi jött át, pedig azért arra is szántam bőven időt, hogy megírjam, hogy sikerüljön rávilágítanom pár dologra, hátha hasznát veszed, és jól fog jönni a jövőben.Egyébként én sehol nem "sötéteztelek le", ha már nekem szántad a legutóbbi választ.
Majd ha megmutatod nekem, hogy működik a lapozód a test3.php oldaladon kikapcsolt JavaScripttel is, akkor majd beszélhetünk a továbbiakról. (Mondjuk ahogy jelenleg elnézem, a sima JS-es megoldás sem működik.)
Viszont a "csak azért is nekem volt/van/lesz igazam, hiába ugattok"-jellegű válaszodból úgy tűnik, nem igazán vagy vevő a közös konstruktív feladat-megoldásra, pedig hidd el, nekem aztán nem érdekem megoldani a te feladatodat, mégis segítettem, de én nem erőltetem, ha te úgyis jobban tudod.Sk8erPeter
-
szmegma
aktív tag
válasz martonx #2066 üzenetére
Ott a pont!
Az volt a hiba, mar mukodik a lapozo is.Viszont amit meg nem ertek, hogy ha
$("#paginate").html(response.paginate).find("#lap."+lap).addClass("activate");
vagy
$("lap."+lap).addClass("activate");
koddal probalok class-t adni a kattintott lapszamnak, miert nem cselekedi meg?
Az eddigiek alapjan arra tudok gondolni, hogy megint az ujratoltes miatt lehet vmi gubanc?
Szoval erre is az .on() fuggvenyt kell hasznalni?TV: JZ1000
-
Sk8erPeter
nagyúr
válasz martonx #2066 üzenetére
"Ez így nekem gyanús: $("tt").on({... bár elvileg ennek is működnie kellene."
Igazából nem is kellene úgy működnie, ahogy ő megadta, tehát így:
$("tt").on({
click: function(){
..............
}
});kétféle paraméterezés:
".on( events [, selector ] [, data ], handler(eventObject) )
events
Type: String
One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
...
.on( events [, selector ] [, data ] )
events
Type: PlainObject
An object in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s)."[ Szerkesztve ]
Sk8erPeter
-
szmegma
aktív tag
válasz Sk8erPeter #2068 üzenetére
martonx kollega sotetezett te pedig igazat adtal neki
Pusztan csak PHP-val mukodo lapozo
Mar korabban is irtam, hogy en nem tudom azert jottem segitseget kerni, de nem en kezdtem ellensegeskedni.
Jim-Y is irta, hogy "...miért nem jó, ha magát a lapozót te állítod össze kliens oldalon js-el..." amire en azt valaszoltam, hogy nekem tokeletes lenne, ha tudnam, hogyan kivitelezheto. Irt egy jo kis kodot, amire irtam, hogy "...ha eszembe jutott volna, akkor eleve ugy csinalom."
En csak tanulni jottem ide es pont, hogy a te hosszu iromanyodbol tanultam a legtobbet, 99%-ban neked koszonhetem, hogy mukodik a kod: JSON + .ON()
Csak nem ertem, miert kell ellensegeskedni egy kevesebb tudasu emberrel, velem.
En soha nem irtam, hogy en jobban tudom, hulyesegeket beszeltek, sot: Utolso bekezdes"Szoval akkor megis csak nekem volt igazam" reszt kiforgatottnak erzem; ezt csak arra irtam,hogy a trisztan94 altal felhozott otlet szerint Jim-Y keszitett egy kodot, amit en korabban megemlitettem, hogy akkor a PHP lapozo kuka es mehet az egesz jQuery-be? Erre irtad nekem, hogy felreertem.
[ Szerkesztve ]
TV: JZ1000
-
Male
nagyúr
válasz szmegma #2069 üzenetére
A második, csak ne hagyd le a #-et, és csak azután csináld, hogy az új tartalom ottvan már, tehát meg fogja találni. (callbackbe beteszed és kész) Már ha cseréled ezt a lapozót is még mindig... nem néztem meg. (persze ha cseréled, és így tolod ki PHP-val, akkor meg eleve benne lehetne már az adott elemnél ez a class... totál felesleges kiküldeni aktív nélkül + elküldeni melyik az aktív, aztán ott kikerestetni, és aktívvá tenni)
Bár ez eleve gyanúsan néz ki: "lap."+lap
Biztos van az ID-ben pont is?#2071: Az pedig nem működik továbbra sem JS nélkül... kapcsold már ki a böngésződben a JS futtatást, és próbáld meg. Az egy dolog, hogy a PHP-d $_GET-ből is nézi az oldal azonosítóját, de ha semmi link nincs, ami így hívná meg a tartalmat, akkor az a lapozó nem működik JS nélkül.
[ Szerkesztve ]
-
szmegma
aktív tag
Az itteni kodbol kihagytam igaz, de a szerveren ott van a # es megsem mukodik. Nezd meg a kodot. Igen van pont az id-ben: <tt id="lap.1">1</tt>
Az pedig nem működik továbbra sem JS nélkül... kapcsold már ki a böngésződben a JS futtatást, és próbáld meg. Az egy dolog, hogy a PHP-d $_GET-ből is nézi az oldal azonosítóját, de ha semmi link nincs, ami így hívná meg a tartalmat, akkor az a lapozó nem működik JS nélkül.
Nem ez volt a kitetel, hanem, hogy a lapozo mukodjon JS nelkul is, akkor pedig egyertelmu, hogy kell a link. Mindjart beteszem, pill: Lapozo linkkel NO JS[ Szerkesztve ]
TV: JZ1000
-
Male
nagyúr
válasz szmegma #2075 üzenetére
A HTML spec.nek tudtommal megfelel, ha van az ID-ben pont. Ellenben a jQuery selector miatt gondot okoz... ugye megadhatod úgy, hogy "#akármiid", így ID-re keres, de megadhatod úgy is, hogy ".valamiclass", így pedig az adott class-u elemeket választod ki. Namost amit te beírtál, hogy "#lap.1" az a lap ID-jű ÉS 1 classal rendelkező elemet kereste, ami persze nincs az oldalon.
-
Male
nagyúr
válasz szmegma #2077 üzenetére
Jó az, csak még össze kell hoznod, hogyha JS van, akkor JS töltse az új tartalmat, ha nincs, akkor pedig éljenek a linkek.
Nem nagyon tudok lapozó témában nyilatkozni, mert egy általam nagyon nem kedvelt rész (se felhasználóként, se fejlesztőként), és ha csak lehet elkerülöm... főleg, hogyha JS-sel töltöd át, akkor még a címsorban is frissíteni kéne a linket, hogy aki onnan kimásolva küldi el valakinek, az egyből oda juthasson... Ilyen JS-es lapozást pl csak kis dobozokban csinálnék (vagy ha valami átmenetek kellenek a váltásnál), ha szinte az egész oldalt lecseréled, akkor hagyományos módon oldanám inkább meg. (Persze a megrendelő dönti el végső soron, hogy mit akar az oldalra, és az hogyan működjön.)
Az előzőmhöz még: az ÉS kapcsolat helyett lehet, hogy VAGY van... még soha nem kellett vegyítenem selectornál classt és ID-t.... de még megnézem, egyszer jól jöhet
[ Szerkesztve ]
-
martonx
veterán
válasz Sk8erPeter #2070 üzenetére
jaja, lusta voltam elővenni a dokumentációt, gondoltam a segítséget kérő kolléga ezt már megtette előttem, de tévedtem. Ránézésre azért kapásból gyanús volt az a sor.
Nem sötét ő, elnézést is kérek a durva célzásomért, csak nem szeret dokumentációt olvasni, és aszerint dolgozni. Inkább kérdezget, hogy aztán megmondhassa, hogy úgyis neki van igazaÉn kérek elnézést!
-
Sk8erPeter
nagyúr
válasz szmegma #2071 üzenetére
"akkor a PHP lapozo kuka es mehet az egesz jQuery-be? Erre irtad nekem, hogy felreertem."
Igen, mert még mindig tartom, hogy félreértetted.
Na, akkor még egyszer, másképp: először működjön a lapozód úgy, hogy semmiféle JS-kódot nem erőltetsz.
Hiába mutogatod nekem a KÜLÖN lapozódat, az senkit sem érdekel, mert az úgy teljesen értelmetlen. Lásd a test4.php?pg=5 és hasonló címeket, amiknél maga a tartalom NEM jelenik meg lapozva, CSAK maga a lapozó. Azzal mit kezdesz? A felhasználó mit kezd vele?
Gondolj bele, ez olyan, mintha lenne egy könyved, amit két részletben kapnál: külön megkapnád az oldalszámokat, aztán külön a tartalmat. Rakd össze a kettőt. Amit mutogatsz nekem, az olyan, mintha a könyvből csak az oldalszámokat mutogatnád. Funkciótlan, értelmetlen.
Tehát a KOMPLETT oldal a lapozóval együtt (!!) először működjön JS nélkül.
Aztán az egész működését szépen átültetheted JS-be, ettől még kezelheted totálisan függetlenül a lapozót a tartalomtól!! Megközelítés kérdése.
Tehát lehet úgy, hogy tartalmat kiíratod, lapozót kiíratod, aztán JS-sel pedig külön-külön frissítgeted a lapozót a tartalomtól függően.
Amit Jim-Y itt mutatott neked, annak megint nem tudom, mi értelme, mert ott összegyűjti az oldalakat egy tömbbe:$oldalak = array();
$oldalak[1] = "Elso oldal";
$oldalak[2] = "Masodik oldal";
$oldalak[3] = "Harmadik oldal";
$oldalak[4] = "Negyedik oldal";
$oldalak[5] = "Otodik oldal";Hogy mi értelme van ezeket elküldeni egyben - amikor pont arról volt szó, hogy a tartalmak legyenek különbontva, csak az legyen elküldve a kliensnek, amire szüksége van -, az nekem megint csak homály. De majd megírja.
Igazából elég, ha megnézel egy jó lapozós oldalt úgy, hogy kikapcsolod a JavaScriptet, úgy biztos jobban meg fogod érteni.
Tehát a teljes oldalad úgy működjön, hogy query stringként megadod az aktuális oldalszámot. NE csak külön a lapozó!
Ha még mindig nem világos, akkor inkább kérdezz vissza, hogy egy nyelvet beszéljünk.A lényeg egy mondatban: ne boncold széjjel a lapozódat az oldal érdemi részétől, mert értelmetlen, a felhasználó úgyis egy requestben fogja lekérni, nem lesz kíváncsi külön a lapozódra, a tartalommal együtt manipuláld.
=====================================================
(#2078) Male :
jól írtad először, természetesen ÉS-kapcsolat van a selectoroknál.
Általában egyébként felesleges az id mellé még a class-t is hozzácsapni, de előfordulhat eset, amikor még pontosabban akarja specifikálni az ember, és csak akkor akarja manipulálni az adott elemet, ha mondjuk az adott id-jú elem még rendelkezik egy megadott class-szal is.Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #2080 üzenetére
Én ott csak egy stringet küldök vissza, nem a tömböt. $oldalak[$page];
Amugy meg azért tömb, mert nem akartam még az adatbázissal is foglalkozni
-
Sk8erPeter
nagyúr
Oh, sorry, azt a részt már elfelejtettem megnézni. Benéztem.
Az viszont akkor is hiba, hogy egyszer $_POST['action']-t használsz, máskor pedig $_GET['action']-t. Na meg azt is ellenőrizni kell, hogy létezik-e egyáltalán az adott index. Gondolom tudod, de ha már szemléltető kód...
Szóval:
$action = isset($_POST['action']);
HELYETT pl.
$action = isset($_GET['action']) ? $_GET['action'] : NULL;innentől kezdve pedig csak az $action értékét vizsgálgatni (NULL-lal egyenlő-e, ha nem, akkor meg volt adva action, aztán jöhet akár egy switch-case is, vagy egyre komplexebb dolgok
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #2082 üzenetére
Igen, sajnos azzal tisztában vagyok, hogy isset kellett volna, a GET-et pedig azért használtam, mert írtátok, hogy azt célszerű a bookmarkolhatóság miatt, egyébként pedig sajnos nem vagyok php guru Próbáltam is jelezni a linkelésemnél, hogy ez csak egy skicc, arra irányult, hogy csak egy bizonyos tartalom menjen vissza, és hogy nem tilos több ajaxot is felhasználni.
És persze igazad van, éles helyzetben ennél sokkal átgondoltabb kód kéne, de most úgysem az volt a cél.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Ja, de félre ne értsd, nem téged blamállak, ezeket csak azért írom le, hogy legyen némi korrekció is. Legalábbis én szeretem, ha kódomban lévő hibákat korrigálják, mert abból én is tanulok, meg másnak sem a rossz infó marad meg.
Amúgy sejtettem, hogy csak gyorsan összedobáltad, mondom, csak korrekció gyanánt írtam.Sk8erPeter
-
Male
nagyúr
válasz Sk8erPeter #2080 üzenetére
OK, szóval az ÉS volt a helyes akkor Kombinálnom még nem nagyon kellett így.
Vajon tempóban van különbség, hogyha ID majd hasClass() -t használok erre, vagy ha ezen a módon ID.class -szal próbálom meg kiválasztani?
-
szmegma
aktív tag
válasz Sk8erPeter #2080 üzenetére
Hiába mutogatod nekem a KÜLÖN lapozódat, az senkit sem érdekel, mert az úgy teljesen értelmetlen. Lásd a test4.php?pg=5 és hasonló címeket, amiknél maga a tartalom NEM jelenik meg lapozva, CSAK maga a lapozó. Azzal mit kezdesz? A felhasználó mit kezd vele?
Szerintem mar kezdem erteni, hol siklott felre a beszelgetes. En ugy ertettem, hogy csak maga a lapozo PHP kodja mukodjon JS nelkul. Egyebkent amit latsz lapozo az tenyleg semmi mas csak PHP-s lapozo kod, nem tettem bele megjelenitendo tartalmat, csak mivel rosszul ertettem amit kertel, ezert magat csak a lapozot keszitettem el bizonyitaskent, hogy mukodik az.
UJ LAPOZO <= Igy gondoltad? Ebben semmi JS nincs ahogy kerted, csak natur PHP es a megjelenitendo tartalom. Ugyanaz a kod mint korabban es nalam mukodik.
Ha meg mindig nem ez az amire gondolsz, hogy mukodie kellene JS nelkul, akkor legy szives ird le pontosabban, hogy mit nem akarok az istenert sem megerteni.
TV: JZ1000
-
Sk8erPeter
nagyúr
válasz szmegma #2089 üzenetére
Yesss! Asszem kezdjük érteni egymást. Ja, ilyesmire gondoltam, hogy így kellene megcsinálnod először (nem "kértem", mert nekem nincs rá szükségem csak javasoltam, hogy először ezt csináld meg működőképesre, ne az AJAX-szal foglalkozz, amíg még az alapja sem működik), és most már akkor ezt lehet átültetni JS-re. A lényege ennek az egésznek éppen ez volt: először működjön JS nélkül, azután már foglalkozhatsz az AJAX-osítással.
Ahhoz pedig kellene egy olyan oldal is, ahol JSON-nel szolgáltatod az adatokat (tartalom, lapozó hol tart, hány lap van összesen, ill. esetleg egyéb adatok, ami kellhet; igazából ezt elvileg már a json_encode()-dal elvileg megcsináltad, ha minden igaz), hasonlóan egy REST API-féleséghez. Aztán erre az URL-re elküldeni egy GET requestet, hogy ezt meg azt az oldalt kéred (ezt az $.ajax() metódus data attribútumában elküldeni). Ha megkaptad, akkor a kapott adatok alapján frissíteni az oldal tartalmi részét, meg a lapozót is JS-sel.Sk8erPeter
-
szmegma
aktív tag
válasz Sk8erPeter #2090 üzenetére
Ez ugy mukodik "allitolag", ahogy most leirtad, bar a "...meg a lapozót is JS-sel." reszben nem vagyok biztos, hogy az en kodom is igy frissiti a lapozot.
JS frissiti az tuti, csak vmiert ugy erzem, hogy te nem igy gondoltad.TV: JZ1000
-
Speeedfire
nagyúr
Hogyan tudok object névben változót használni?
$('#Channels_added tbody tr').each(function(index){
var ch_id = $(this).attr('ch_id');
var ch_limit = $(this).attr('ch_limit');
var post_ch_id = "CampaignChannels["+index+"][CHANNELS_ID]";
var post_ch_limit = "CampaignChannels["+index+"][CHANNELS_LIMIT]";
var post_channels = {post_ch_id : ch_id, post_ch_limit : ch_limit};
channels.push(post_channels);
form_data = form_data + '&' + $.param(channels[index]);
});Ez nem tettszik neki, nem helyettesíti be a változót.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Jim-Y
veterán
válasz Speeedfire #2092 üzenetére
Ellenőrizd, hogy channels tömb tagjai (objectek) ne tartamazzanak `nem stringet`
Például:
var channels = [{one: 1, two: 2, three: 3},{egy: "egy", ketto: "ketto", harom: "harom"}];
var str = $.param(channels[0]);
console.log(str); //undefinedde,
var channels = [{one: "1", two: "2", three: "3"},{egy: "egy", ketto: "ketto", harom: "harom"}];
var str = $.param(channels[0]);
console.log(str); //one=1&two=2&three=3Mondjuk, szerintem a te adataid automatikusan stringgé kéne, hogy kovertálódjanak, szoval lehet nem ez a baj, de egy tippnek elment
[ Szerkesztve ]
-
Speeedfire
nagyúr
-
Sk8erPeter
nagyúr
válasz szmegma #2091 üzenetére
Jónak tűnik!
Még amibe bele lehet kötni, hogy ha kikapcsolom a JS-t az oldalon, akkor megint csak nem működik, mert ezeknek a lapozóelemeknek LINKEKNEK kellene lenniük, amik az adott oldalra mutatnak.
Pl.
<nav>
<ul>
<li><a href="valami.php?page=1">1</a></li>
<li><a href="valami.php?page=2">2</a></li>
<li><a href="valami.php?page=3">3</a></li>
...
</ul>
</nav>Ezenkívül továbbra sem értem, miért ezt a <tt> elemet használod, amikor az rossz. Lehetne helyette pl. a fenti szerkezet.
Meg az picit zavaró, hogy nincs előző-következő oldalra mutató link, a számok MELLETT. Ha pedig valaki mondjuk egyből az 5. oldalra akarna ugrani, akkor zavaró, hogy előtte végig kell kattintgatnia a számokat, hogy végre az a link is megjelenjen.
De egyébként jó irányba haladsz!Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #2092 üzenetére
"Hogyan tudok object névben változót használni?"
Mi az az "object név"? Ilyenről most hallok először.var ch_id = $(this).attr('ch_id');
var ch_limit = $(this).attr('ch_limit');
var post_ch_id = "CampaignChannels["+index+"][CHANNELS_ID]";
var post_ch_limit = "CampaignChannels["+index+"][CHANNELS_LIMIT]";
var post_channels = {post_ch_id : ch_id, post_ch_limit : ch_limit};Ebben a kódodban igazából a post_ch_id és post_ch_limit változókat egyáltalán nem is használtad fel.
Ami ebben az esetben működne, csak nagyon ronda:
var post_channels = {post_ch_id : post_ch_id, post_ch_limit : post_ch_limit};Sk8erPeter
-
szmegma
aktív tag
válasz Sk8erPeter #2095 üzenetére
Lecsereltem, a TT elemet A elemre es total meghalt a kod. Fogalmam sincs miert.
Az ajax mar le sem fut, szerintem a get metodus fut le kattintaskor es nem az ajax. Azt viszont mar nem tudom, hogyan kell rakenyszeriteni, hogy aktiv JS eseten a JS fusson le es ne a PHP.
UJ KODTV: JZ1000
-
Speeedfire
nagyúr
válasz Sk8erPeter #2096 üzenetére
Hát, nem tudtam hogy nevezzem el, így ez jött ki.
Mindenesetre most megy.Más kérdés:
Hogy lehet valamelyik tooltip plugin-t használni az on segítségével? Nekem nem akart menni.
Próbáltam a jquery ui és a qtip plugineket is.$('#content').on('change', '.erre_kellene_tooltip', function(){
$(this).tooltip();
});Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Jim-Y
veterán
válasz Speeedfire #2099 üzenetére
Mi az a content?
Új hozzászólás Aktív témák
- ASUS H97-PRO alaplap 1150 Intel H97 lapkakészlet, 4xDDR3, SATA 3.0, HDMI, M.2 SSD foglalat
- Macbook Pro 16.2" M1 PRO 10C/16C 16GB - 1TB Magyar billentyűzet - Garanciális 2025.08.04.-ig
- Sharkoon TG5 számítógép ház Corsair HX650 tápegységgel eladó
- Asus V8460 Ultra ( Geforce 4 Ti 4600 )
- HP Prodesk 600 G5 DM, Tiny i5-9500T , 8-16GB DDR4 , 256GB NvME , 2 év gari , AAM számla
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen