Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz spammer #9359 üzenetére

    Ha arról beszélsz, hogy abban a bizonyos fájlban egy normálisan felépített HTML-tartalom van, és abból csak pl. egy adott id-vel rendelkező div-et szeretnél megjeleníteni, vagy hasonló, akkor példaként a jQuery hivatalos oldalán van AJAX-os kommunikációnál ugyanilyen:
    Loading Page Fragments

    $('#result').load('ajax/test.html #container');

    Egyébként még PHP-val is lenne mód ilyenre: DOMDocument-tel parse-olod, getElementById()-vel beolvasod a megfelelő részt.

    Mondjuk ha már megoldási módszerekről beszélünk, ez sem túl szép, jobb lenne a tartalmakat adatbázisból kiolvasni, ha van erre mód.

    ===

    (#9360) PazsitZ : nem akarok kötekedni, de azért ne szoktassuk arra az emberkéket, hogy minden cikket jelenítsenek csak meg nyugodtan ugyanazon az oldalon, aztán majd kliensoldalon szépen megjelenítgeti-eltünteti, nem kevés terhelést róhat adott esetben feleslegesen a szerverre.
    Persze nagymértékben függ a feladattól, de általában inkább kerülendő, inkább aszinkron módon kellene betölteni.

  • PazsitZ

    addikt

    válasz spammer #9359 üzenetére

    Egyszerű példa (vedd pszeudokódnak) :
    CikkModule.php
    {
    static function getCikkHTML($cikkId) {
    ...
    }
    }

    CikkController.php:

    {
    public function cikkekAction(){
    foreach($cikkek as $cikk){
    echo CikkModule::getCikkHTML($cikk->cikk_id);
    }
    }

    public function cikkAction($cikkId){
    echo CikkModule::getCikkHTML($cikkId);
    }
    }

    vagy még egyszerűbben listaoldalon ajax hívás nélkül (persze a direkt linkhez kell az egy cikket megjelenítő action):
    <div id="cikkek">
    <div class="cikk_1"><a onclick="showCikk(1);"></a></div>
    <div class="cikk_2"><a onclick="showCikk(2);"></a></div>
    </div>
    <div id="cikk" style="display:none;"> <a onclick="closeCikk();"></a></div>
    <script>
    function showCikk(id){
    $('#cikk').html( $('#cikk_' + id).html() ).show();
    $('#cikkek').hide();
    }
    function closeCikk(){
    $('#cikkek').show();
    $('#cikk').hide().html('');
    }
    </script>

    Bár megjegyzem pont Yii-ben van rá példa, hogy az egész page contentet lekéri az ajax és csak a megfelelő tartalmat illeszti be sima jQuery selectorral. pl.: $('.cikk_2', '#cikkek').html();

Új hozzászólás Aktív témák

Hirdetés