Mam napisana stronkę opartą na CakePHP, ale chciałbym ją urozmaicić o przeładowywanie podstronek z pomocą AJAX'a

w manualu Cake'a jest napisane:

The requestAction() function is also useful in AJAX situations where a small element of a view needs to be populated before or during an AJAX update.

kombinowalem na rozne sposoby, ale nie wyszlo to co trzeba, utworzylem nowa funkcje w kontrolerze specjalnie by renderowalo poszczegolne podstrony na pustym layoucie, ale gdy przeladowywala sie podstronka nie bylo polskich znakow, natomiast jakbym dodal meta tagi do pustego layoutu, bylyby one importowane do srodka strony, co jest wogle niepoprawne

funkcja w kontrolerze:
  1. <?php
  2. function rend($action = 'glowna'){
  3. $this->render($action, 'none');
  4. }
  5. ?>


layout:
  1. <?php echo $content_for_layout; ?>


link na stronce:
  1. <a onclick = "getData('http://jakasdomena.pl/cakephp/pages/rend/glowna', 'div')">Strona glowna</a>


skrypt AJAX'a:
  1. if (window.XMLHttpRequest)
  2. {
  3. ObiektXMLHttp = new XMLHttpRequest(); }
  4. else if (window.ActiveXObject)
  5. {
  6. ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  7.  
  8. // druga część kodu
  9. function getData(zrodlo, cel) {
  10. if(ObiektXMLHttp)
  11. {
  12. var cel = document.getElementById(cel);
  13. ObiektXMLHttp.open("GET", zrodlo);
  14.  
  15. ObiektXMLHttp.onreadystatechange = function()
  16. {
  17. if (ObiektXMLHttp.readyState == (1 || 0)) {
  18. document.getElementById('div').innerHTML = "<img src=\"img/loader.gif\" />"; }
  19.  
  20. if (ObiektXMLHttp.readyState == 4)
  21. {
  22. cel.innerHTML = ObiektXMLHttp.responseText;
  23. }
  24. }
  25.  
  26. // trzecia część kodu
  27. ObiektXMLHttp.send(null); } }


dosyć amatorskie rozwiązanie ale działało oprócz wyświetlania polskich znaków

na pewno istnieje inny lepszy sposób, czekam na wszelkie propozycje