Autor Zpráva
Pavlínka
Profil
ahoj, tvořím si takový malý suportík pro uživatele... a chci aby mi to zvonilo když nějaký uživatel něco napíše...

na jedné straně mám obnovování plochy textu:

          <script type="text/javascript">
              $('#chat_sklo').load('/chat/suport.php?id=<?php echo "$chnick&hash=$hash&time=".time(); ?>');
              var refreshId = setInterval(function() {
                  var timestamp = Number(new Date());
                 $('#chat_sklo').load('/chat/suport.php?id=<?php echo "$chnick&hash=$hash&time="; ?>'+timestamp);
                }, 5000);
          </script>



kde se kontroluje zda někdo něco napsal a zároveň zda jsem mu odpověděla... (pokud někdo něco napsal a já mu neodpověděla spustí se zvonění)
v tomto případě tam mám podmínku (/chat/suport.php:)


if($komunikaceadmin==""){
echo"<script src=\"/chat/zvoneni.js\" type=\"text/javascript\"></script>";
}



kde v souboru zvoneni.js mám hodnotu:
mpetrojka = 12;



pak mám na straně webu kde je i první zmiňovaný kod na obnování také toto...
<div id="ConnectionIndicator" style="display: none" onmouseover="this.style.display='block'"></div>
<script type="text/javascript">
        if(mpetrojka==12){
            $('#ConnectionIndicator').html('<audio autoplay controls><source src="zvoneni.mp3" type="audio/mpeg"></audio>');
        }
</script>



a má otázka je jednoduchá... jak vyvolat "zvoneni" tak aby začalo hrát při podmínce a přestalo hrát při odepsání...
původně jsem místo

if($komunikaceadmin==""){
echo"<script src=\"/chat/zvoneni.js\" type=\"text/javascript\"></script>";
}
měla pouze <audio ...> které však logicky přehrálo jen opakovaně prvních 5s.
Kajman
Profil
Můžete tam tag audio mít vždy a javascriptem podle potřeby volat jeho metody play() a pause().

<audio loop preload controls id="zvoneni"><source src="zvoneni.mp3" type="audio/mpeg"></audio>

document.getElementById('zvoneni').play();

document.getElementById('zvoneni').pause();
Pavlínka
Profil
problém je, že .load('/chat/suport.php?id=<?php echo "$chnick&hash=$hash&time="; ?>'+timestamp); načte html ale nenačte js takže ani nevyvolá document.getElementById('zvoneni').play();
Kajman
Profil
Pokud budete volat ajax, který vrací např. v json formátu více věcí a ne jen nové řádky chatu, můžete se podle toho rozhodnout, zda je potřeba začít zvonit nebo naopak přestat (jiný operátor se zákazníkem zahájil chat).

požadavek na server
- ověření oprávnění
- seznam otevřených chatů s identifikací pro každý z nich s posledním získaným id

odpověd serveru
- seznam neotevřených chatů, které čekají, až je nějaký operátor zvedne (pokud to nebude prázdné, mohlo by to zvonit, naopak přestat zvonit, pokud ve frontě nic není)
- seznam požadovaných chatů - u každého nové řádky a identifikátor posledního vypsaného id, případně příznak, že ho zákazník ukončil

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: