Hirdetés
- ASUS Maximus VIII Ranger Z170 6-7-8-9-10 gen támogatás (Coffeetime mod)
- DFI és DFI Lanparty gyűjteményem
- Möbelix Milan íróasztal - a tapasztalatok összeszerelés után
- Keychron V6 Max (HU) Mechanikus vezetéknélküli billentyűzet (Bluetooth, RF, USB)
- Újjászületés: szombattól új szerverkörnyezetben a PROHARDVER!
- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: Egy bihari a Hajdúságban
- sziku69: Fűzzük össze a szavakat :)
- laskr99: DFI és DFI Lanparty gyűjteményem
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- Brogyi: CTEK akkumulátor töltő és másolatai
- Victoryus: Hp T630 thin client, htpc
- sziku69: Szólánc.
- lionhearted: Telekom TV Mikrotikkel
Ú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
- Meta Quest 3 512GB 4K 120hz + Kiwi Design Elite Strap 6400mAh akksival
- Intel Core i3 / i5 6 7. generációs processzorok tesztelt, hibátlan, LGA1151 foglalat
- Dell Latitude 5500 i5-8365u / 16gb ddr4 / 250gb m.2 ssd/
- Insta360 Ace Pro 2 Dual Battery Bundle + szelfibot
- Macbook Air 13" M1 - 8/256GB - garancia (102)
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700 / Rog RX580 8GB / 32GB DDR4 / 500GB SSD
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RAM RX 9070 16GB GAMER PC termékbeszámítással
- ROLLEREK: ÚJ, Újszerű, Használt 30+ db listát tudok küldeni
- GYÖNYÖRŰ iPhone 13 128GB Starlight- 1 ÉV GARANCIA, Kártyafüggetlen,,MS3434
- 159 - Lenovo LOQ (15APH8) - AMD Ryzen 7 7840HS, RTX 4060
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest