Hej!
Chcialbym zaprezentowac swoj pierwszy ajaxowy sofcik i zapytac dlaczego nie dziala on pod Opera 8.52 (na Fire Foxie hula).
Oto link:
http://phpion.com/ajax/loader.html
A oto zrodla:
loader.html
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <title>Loader</title>
  3. <meta name="GENERATOR" content="Quanta Plus">
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  5. <style type="text/css">
  6. #loading {
  7. font-family: Verdana, Tahoma, sans-serif;
  8. font-size: 18px;
  9. width: 100%;
  10. background-color: #FFFFFF;
  11. text-align: center;
  12. }
  13. #info {
  14. font-family: Verdana, Tahoma, sans-serif;
  15. font-size: 12px;
  16. color: #969696;
  17. width: 100%;
  18. background-color: #FFFFFF;
  19. text-align: center;
  20. padding: 5px;
  21. }
  22. #progress {
  23. font-family: Verdana, Tahoma, sans-serif;
  24. font-size: 18px;
  25. font-weight: bold;
  26. width: 100%;
  27. background-color: #FFFFFF;
  28. text-align: center;
  29. }
  30. <script type="text/javascript" language="JavaScript1.2" src="advajax.js"></script>
  31. <script type="text/javascript" language="JavaScript1.2">
  32. function sendEMail(part)
  33. {
  34. total = 10;
  35.  
  36. document.getElementById('button').disabled = true;
  37.  
  38. advAJAX.get({
  39.  
  40. url: 'loader.php',
  41. parameters : {
  42. 'part' : part,
  43. },
  44.  
  45. onLoading : function(obj)
  46. {
  47. if (part <= total)
  48. {
  49. if (part == 1)
  50. putContent('<img src="loading.gif"> Proszę czekać...', 'loading');
  51.  
  52. putContent('Wysyłanie maila <b>' + part + '</b> z <b>' + total + '</b>', 'info');
  53.  
  54. percent = parseInt(part / total * 100);
  55.  
  56. if (percent > 100)
  57. percent = 100;
  58.  
  59. progress = '';
  60.  
  61. for (i=1; i<=part; i++)
  62. progress += 'l';
  63.  
  64. progress += '<font color="#969696">';
  65.  
  66. for (i=part+1; i<=total; i++)
  67. progress += 'l';
  68.  
  69. progress += '</font> ' + percent + '%';
  70.  
  71. putContent(progress, 'progress');
  72. }
  73. },
  74.  
  75. onSuccess : function(obj)
  76. {
  77. if (obj.responseText == '1')
  78. sendEMail(part + 1);
  79. else
  80. {
  81. putContent('', 'loading');
  82. putContent('', 'progress');
  83. putContent('Finito! :)', 'info');
  84. document.getElementById('button').disabled = false;
  85. }
  86. },
  87.  
  88. onError : function(obj) { alert('Error: ' + obj.status); }
  89. });
  90.  
  91. }
  92.  
  93. function putContent(content, div)
  94. {
  95. document.getElementById(div).innerHTML=content;
  96. }
  97. </head>
  98. <div>
  99. <input id="button" type="button" value="Go! go! go!" onClick="sendEMail(1);" />
  100. <br /><br /><br />
  101. <div style="width: 300px;">
  102. <div id="loading"></div>
  103. <div id="info"></div>
  104. <div id="progress"></div>
  105. </div>
  106. </body>
  107. </html>

oraz loader.php
  1. <?php
  2. $stop = 10;
  3.  
  4. if ($_GET['part'] <= $stop)
  5. {
  6. // wysylka maila
  7. sleep(1);
  8. echo '1';
  9. }
  10. else
  11. echo '0';
  12. ?>

I 2 male uwagi. Zmienna total docelowo oczywiscie rowniez bylaby pobierana za posrednictwem php. Skrypt wysylajacy maile na razie ich nie wysyla - bo i po co tongue.gif
Prosilbym o opinie, sugestie, uwagi jakoze to moje pierwsze starcie z Ajaxem. Szczegolnie o pomoc dlaczego toto nie dziala pod Opera (przyklady ze strony advAjax chodza wiec to raczej nie z ustawieniami przegladarki).
Pozdrawiam: phpion (.com)

//EDIT:
http://forum.php.pl/index.php?showtopic=45790&hl=Opera znalazalem ten topic ale to nic nie daje :|
http://forum.php.pl/index.php?showtopic=52276 podobnie jak to...