W dniu 16 listopada 2015 09:01 użytkownik Tomasz Chiliński <tomasz.chilinski@chilan.com> napisał:
W dniu 15.11.2015 22:22, Marcin napisał(a):
poszedłem z xajaxem trochę na około. nie wiem czy dobrze, ale
działa.
#v+ php
function stbStatusChange($id, $status) {
    global $STB;
    $obj = new xajaxResponse();
    $x = "'stb_" . $id . "'";
    $xa = "stb_" . $id . "_s";

    if ($status == 1) {

        if ($STB->stbSetActive($id)) {
            $t = 'Ustawilem active dla dekodera id=' . $id;
            $obj->script("removeClass(xajax.$($x),'blend');");
            $obj->assign($xa, "title", 2);
        } else {
            $t = 'Błąd ustawienia active';
        }
        $tekst = '<img src="img/access.gif" alt="[ ' .
trans("Disconnect") . ' ]" title="[ ' . trans("Disconnect") . ' ]">';
        $obj->assign($xa, "innerHTML", "$tekst");
    } elseif ($status == 2) {

        if ($STB->stbSetNoActive($id)) {
            $t = 'Ustawilem Noactive dla dekodera id=' . $id;
            $obj->script("addClass(xajax.$($x),'blend');");
            $obj->assign($xa, "title", 1);
        } else {
            $t = 'Błąd ustawienia No active';
        }
        $tekst = '<img src="img/noaccess.gif" alt="[ ' .
trans("Connect") . ' ]" title="[ ' . trans("Connect") . ' ]">';
        $obj->assign($xa, "innerHTML", "$tekst");
    }
    $obj->assign("infotag", "innerHTML", $t);
    $obj->script("xajax.$('infotag').style.display='block';");
    return $obj;
}
#v-

#v+ html
<a id="stb_{$stblist[stblist].id}_s"
onclick="xajax_stbStatusChange({$stblist[stblist].id},this.getAttributeNode('title').value);"
title="{$stblist[stblist].active+1}"><img src="img/{if !
$stblist[stblist].active}no{/if}access.gif" alt="[ {if !
$stblist[stblist].active}{trans("Connect")}{else}{trans("Disconnect")}{/if}
]" title="[ {if !
$stblist[stblist].active}{trans("Connect")}{else}{trans("Disconnect")}{/if}
]"></A>
#v-

musiałem do taga "a" dodać atrybut title i id by móc z xajaxa to
wyłapywać, nie znalazłem innego sposobu.
generalnie działa, w bazie zmiany są robione znaczniki sie
zmieniają.

czy kod ten jest prawidłowy? czy może coś w tym zmienić? piszę z
myślą udostępnienia tego później w core lms.

Staraj się unikać kodu html w modułach php, więc tu w obsłudze wywołania
ajaksowego trzeba byłoby efekt działania zwrócić do kodu html/javascript przez
xajaxResponse::call() albo xajaxResponse::script() i dopiero kodem w javascript
w szabonie html wykonać odpowiednie zmiany w treści wizualnej.

Masz rację, nie pomyślałem o tym. poprawię.
dziękuję

 


--
Pozdrawiam
Tomasz Chiliński, Chilan
_______________________________________________
lms mailing list
lms@lists.lms.org.pl
http://lists.lms.org.pl/mailman/listinfo/lms



--
Pozdrawiam
Marcin / nicraM