Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SMARTY & JS] Dwie sondy na jednej stronie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Foxhunt
Witam

Mam swój serwis oparty na SMARTach, na stronie głównej mam wstawioną sondę i wszystko działa jak należy. Teraz chciałbym tę samą sondę wstawić również na podstronach, np. z jakimś news'em. Pomyślałem nic trudnego. Na stronie głównej owa sonda osadzona jest w poniższy sposób:

  1. {include file='glowny/sonda.tpl'}


Natomiast plik sonda.tpl wygląda następująco:

  1. <script type="text/javascript">
  2.  
  3. window.addEventListener=function(){ldelim}
  4.  
  5. W_PobierzSonde({$wezel.idc},'w_div_sonda',175,4,'l','f', "wyniki", "głosuj", "ankieta", "");
  6.  
  7. {rdelim}
  8.  
  9. </script>


No więc chciałem aby owa sonda wyświetlała się również na podstronie z newsem, więc do pliku news.tpl w odpowiednie miejsce wstawiłem sobie tylko ten kod:

  1. {include file='glowny/sonda.tpl'}


I powinna się na mój rozum wyświetlać teraz zarówno na stronie głównej i na podstronie z newsem. Niestety nie działa. Ta pierwsza sonda na stronie głównej wyświetla się dalej bez zarzutu niestety ta druga sonda na podstronie już nie. Chwile widać jak się ona ładuje, kończy się ładować i jest pusta przestrzeń nie ma pytania, odpowiediz ani nic. Po prostu sonda się nie załadowała.

Ogólnie nie znam się na tym za bardzo, co nieco próbowałem jednak z tym powalczyć, czytałem troche na necie o javasript w smartach i doczytałem się znaczników {literal} jednak to nic nie pomogło.

Potrafi mi ktoś pomóc, aby jedna i ta sama sonda wyświetlała się w dwóch miejscach. A może to jest po prostu niemożliwe?

Pozdrawiam
b4rt3kk
Daj kod funkcji JS W_PobierzSonde.
Foxhunt
Zdaje się, że to będzie to:

  1. function W_PobierzSonde(idw, div, szer_tab, wys_pkt,rodz_wyn, sonda, wyn_text, glos_text, sonda_text, ankieta_text, p, s){
  2.  
  3. var pyt=0;
  4.  
  5. if(p!=undefined){
  6.  
  7. var form_sonda=document.getElementById(p);
  8.  
  9. for(i=0; i<form_sonda.glos.length; ++i){
  10.  
  11. if(form_sonda.glos[i].checked){
  12.  
  13. pyt=i+1;
  14.  
  15. }
  16.  
  17. }
  18.  
  19. }
  20.  
  21. var obraz=new Image();
  22.  
  23. obraz.src="/szablon/sonda_loader.gif";
  24.  
  25. var wpis="<img id='w_img_sonda_load' src='"+obraz.src+"' align='middle' alt='' />";
  26.  
  27. W_PiszDiv(div, wpis);
  28.  
  29. var oXmlHttp=zXmlHttp.createRequest();
  30.  
  31. oXmlHttp.open("get","/serwery_ajax_front/serwer_sondy/serwer_sondy.php?idw="+idw+"&p="+pyt+"&s="+s, true);
  32.  
  33. oXmlHttp.onreadystatechange=function(){
  34.  
  35. if(oXmlHttp.readyState==4){
  36.  
  37. if(oXmlHttp.status==200){
  38.  
  39. var odpowiedz=oXmlHttp.responseText.split("||");
  40.  
  41. var idx_obr;
  42.  
  43. var glos;
  44.  
  45. var liczw=0;
  46.  
  47. var liczp=0;
  48.  
  49. var nazwa="";
  50.  
  51. var opis="";
  52.  
  53. var ids="";
  54.  
  55. var wyniki=Array();
  56.  
  57. var pytania=Array();
  58.  
  59. for(x in odpowiedz){
  60.  
  61. if(x<=3){
  62.  
  63. if(x==0)
  64.  
  65. nazwa=odpowiedz[x];
  66.  
  67. else if(x==1)
  68.  
  69. opis=odpowiedz[x];
  70.  
  71. else if(x==2)
  72.  
  73. ids=odpowiedz[x];
  74.  
  75. else
  76.  
  77. glos=odpowiedz[x];
  78.  
  79. }
  80.  
  81. else{
  82.  
  83. if(x%2==0){
  84.  
  85. pytania[liczw]=odpowiedz[x];
  86.  
  87. ++liczp;
  88.  
  89. }
  90.  
  91. else{
  92.  
  93. wyniki[liczw]=odpowiedz[x];
  94.  
  95. ++liczw;
  96.  
  97. }
  98.  
  99. }
  100.  
  101. }
  102.  
  103. var i=0;
  104.  
  105. var zaw="<h4>"+ankieta_text+"</h4><div class='sonda1'>";
  106.  
  107. if(glos==1 || sonda=="w"){
  108.  
  109. zaw+="<h5>"+nazwa+"</h5><table width='"+szer_tab+"'>";
  110.  
  111. var suma=0;
  112.  
  113. var max=0;
  114.  
  115. for(i=0; i<wyniki.length; ++i){
  116.  
  117. suma+=parseInt(wyniki[i]);
  118.  
  119. if(parseInt(wyniki[i])>max)
  120.  
  121. max=parseInt(wyniki[i]);
  122.  
  123. }
  124.  
  125. var szer=0;
  126.  
  127. for(i=0; i<wyniki.length; ++i){
  128.  
  129. szer=Math.floor((wyniki[i]/max)*100);
  130.  
  131. szer=Math.floor(szer*szer_tab/100);
  132.  
  133. if(rodz_wyn=="p"){
  134.  
  135. ilosc=Math.floor(wyniki[i]/suma*100);
  136.  
  137. ilosc+="%";
  138.  
  139. }
  140.  
  141. else{
  142.  
  143. ilosc=wyniki[i];
  144.  
  145. }
  146.  
  147. zaw+="<tr><td align='left'>"+pytania[i]+" ("+ilosc+")</td></tr>";
  148.  
  149. zaw+="<tr><td align='left'><img src='/szablon/point.gif' width='"+szer+"' height='"+wys_pkt+"'></td></tr>";
  150.  
  151. zaw+="<tr><td align='left'> </td></tr>";
  152.  
  153. }
  154.  
  155. if(glos!=1){
  156.  
  157. zaw+="<tr><td align='left'><span class='wiecej_sonda'><a href=\"java script:W_PobierzSonde("+idw+",'"+div+"',"+szer_tab+","+wys_pkt+",'"+rodz_wyn+"', 'f', '"+wyn_text+"', '"+glos_text+"', '"+sonda_text+"', '"+ankieta_text+"')\">&laquo;&nbsp;"+sonda_text+"</a></td></tr>";
  158.  
  159. }
  160.  
  161. zaw+="</table>";
  162.  
  163. }
  164.  
  165. else{
  166.  
  167. zaw+="<h5>"+nazwa+"</h5><form id='sonda_form_"+ids+"'><table width='"+szer_tab+"'>";
  168.  
  169. for(i=0; i<pytania.length; ++i){
  170.  
  171. var nrp=i+1;
  172.  
  173. zaw+="<tr><td class='radio' valign='top'><input type='radio' name='glos' value='"+nrp+"'></td><td>"+pytania[i]+"</td></tr>";
  174.  
  175. }
  176.  
  177. zaw+="<tr><td><div class='wiecej_sonda'><a href=\"java script:W_PobierzSonde("+idw+",'"+div+"',"+szer_tab+","+wys_pkt+",'"+rodz_wyn+"','w', '"+wyn_text+"', '"+glos_text+"', '"+sonda_text+"', '"+ankieta_text+"')\">"+wyn_text+"&nbsp;&raquo;</a></span></td>";
  178.  
  179. zaw+="<td><br /><input style='float: right;' type='submit' class='submit' value='"+glos_text+"' onclick=\"W_PobierzSonde("+idw+",'"+div+"',"+szer_tab+","+wys_pkt+",'"+rodz_wyn+"','"+sonda+"', '"+wyn_text+"', '"+glos_text+"', '"+sonda_text+"', '"+ankieta_text+"' ,'sonda_form_"+ids+"',"+ids+");\"></td></tr>";
  180.  
  181.  
  182.  
  183. zaw+="</table></form>";
  184.  
  185. }
  186.  
  187. zaw+="</div>";
  188.  
  189. if(ids>0)
  190.  
  191. W_PiszDiv(div, zaw);
  192.  
  193. else
  194.  
  195. W_PiszDiv(div, "");
  196.  
  197. }
  198.  
  199. else{
  200.  
  201. }
  202.  
  203. }
  204.  
  205. }
  206.  
  207. oXmlHttp.send(null);
  208.  
  209.  
  210.  
  211. }
nospor
Raczej chodzi o to:
W_PobierzSonde({$wezel.idc},'w_div_sonda',175,4,'l','f', "wyniki", "głosuj", "ankieta", "");
a konkretnie o to
{$wezel.idc}
czy na stronie z newsem dla smartiego tez przekazujesz tę tablice?
Foxhunt
Hm.. sorry ale nie bardzo rozumiem...
Człowiek aż tak w tym nie siedzi, a z problemem został sam sad.gif

Czy mógłbyś jakoś tak bardziej łopatologicznie zadać to pytanie jak do chłopa ze wsi ? smile.gif
Czego, gdzie szukać mam aby odpowiedzieć na Twoje pytanie?
Swego czasu zrobiłem test i ten kod

  1. {include file='glowny/sonda.tpl'}


wkleiłem jeszcze raz na stronę glówną trochę poniżej tej peirwzej oryginalnej sondy i też się ta skopiowana nie wyświetlała mimo iz była w tym samym pliku tpl tylko trochę poniżej.

I to rozumiem koniec tematu ? smile.gif
Problem jest nie do rozwiązania?
wNogachSpisz
Cytat(Foxhunt @ 19.07.2013, 07:17:32 ) *
Czy mógłbyś jakoś tak bardziej łopatologicznie zadać to pytanie jak do chłopa ze wsi ? smile.gif

Nigdy nie pytałem się o nic chłopa ze wsi... Baby zresztą też nie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.