Hirdetés
- Everest / AIDA64 topik
- Milyen házat vegyek?
- Milyen monitort vegyek?
- AMD GPU-k jövője - amit tudni vélünk
- Rendkívül ütőképesnek tűnik az újragondolt Apple tv
- SSD kibeszélő
- Minőségi ugrást hozhat a One új médiaboxa?
- Nitrogénfelhőben született az új rekord
- Apple MacBook
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
Új hozzászólás Aktív témák
-
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.
Új hozzászólás Aktív témák
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Xiaomi 14T Pro - teljes a család?
- Everest / AIDA64 topik
- iPhone topik
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- PlayStation 5
- iOS alkalmazások
- Brogyi: CTEK akkumulátor töltő és másolatai
- Xiaomi 14T - nem baj, hogy nem Pro
- Path of Exile 2
- További aktív témák...
- Sapphire Pulse 6800XT 16Gb Kitűnő! Ingyen posta!
- Cisco Telepresence MX300 G2 - 55" Interaktiv Monitor - Konferencia rendszer
- 70" Interkativ Érintőképernyős Monitor / All In one PC - InFocus INF7021A Multi Touch
- Microsoft Surface Hub (v1) 1597 - 55" All in One PC - Érintőképernyős monitor
- Dell PowerSwitch N2048 48 Port Gigabit Ethernet 2 Port 10Gb SFP+ Switch
- GYÖNYÖRŰ iPhone 11 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3271, 100% Akkumulátor
- ASUS RTX 5060Ti DUAL OC 8GB GDDR7 DLSS4 új, 3év garis eladó
- Lenovo T450s notebookok - 14", i5-i7, 4-12GB RAM, eu vil.bill, számla, gar
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- HP EliteDesk 800 G5 DM Desktop Mini - Intel Core i5-9500T 16GB 256GB SSD (utolsó darab) (ELKELT)
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest
Hülyebiztosra kell elkészíteni egy kódot, nem arra számítani, hogy "jó az vidékre"...
Azt add vissza a kliensnek szerveroldalról, amire kíváncsi volt, és aminek érdemi funkciója van, ne többet, ne kevesebbet.


