Hallo Alex,
ich weiß, dass du mit den bisherigen Angaben an sich das Problem nicht analysieren kannst. Deshalb hier einige Angaben zur Funktion:
Der Java Script-Teil auf Client Seite erstellt mit
Code:
var xhttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
try{
// IE 6 and higher
//xhttp = new ActiveXObject("MSXML2.XMLHTTP");
xhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
// end try
}
catch (e){
try{
// IE 5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
// end try
}
catch (e){
xhttp = false;
// end catch
}
// end catch
}
// end if
}
else if (window.XMLHttpRequest){
try{
// Mozilla, Opera, Safari ...
xhttp = new XMLHttpRequest();
// end try
}
catch (e){
xhttp = false;
// end catch
}
// end else if
}
// end function
}
window.onload = createXMLHttpRequest;
eine Instanz des XMLHTTPRequest-Objekts oder ein Microsoft-Derivat. Anschließend frage ich per
Code:
function next(){
// check if XMLHTTPRequest object is initialized correctly
if(!xhttp){
alert("An Error occured when trying to initialize the XMLHttpRequest object or you are using a buggy Microsoft browser!");
return;
// end if
}
// increment page number
pagenumber = pagenumber + 1;
// create request
var request = "http://dev.adventure-php-framework.org/~/sites_demosite_biz-action/setLanguage/~/modules_newspager_biz-action/Pager/page/" + pagenumber
// send request for next news
xhttp.open("GET",request,true);
xhttp.onreadystatechange = updateNewsContent;
xhttp.send(null);
// end function
}
eine neue News-Seite vom Server an, die von einer FrontController-Action ausgeliefert wird. Der PHP-Code dazu sieht wie folgt aus:
PHP-Code:
<?php
import('modules::newspager::biz','newspagerManager');
class newspagerAction extends AbstractFrontcontrollerAction
{
function newspagerAction(){
}
function run(){
// get desired page number
$Page = $this->__Input->getAttribute('page');
// get manager
$nM = &$this->__getServiceObject('modules::newspager::data','newspagerManager');
// load news object
$N = $nM->getNewsByPage($Page);
// create xml
$XML = (string)'';
$XML .= '<?xml version="1.0" encoding="utf-8" ?>';
$XML .= '<news>';
$XML .= '<headline>'.$N->get('Headline').'</headline>';
$XML .= '<subheadline>'.$N->get('Subheadline').'</subheadline>';
$XML .= '<content>'.$N->get('Content').'</content>';
$XML .= '<newscount>'.$N->get('NewsCount').'</newscount>';
$XML .= '</news>';
// send xml
header('Content-Type: text/xml; charset=iso-8859-1');
echo $XML;
// close application
exit(0);
// end function
}
// end class
}
?>
Beim Request der URL
Code:
http://dev.adventure-php-framework.org/~/sites_demosite_biz-action/setLanguage/~/modules_newspager_biz-action/Pager/page/2
wird dann das folgende XML geliefert:
Code:
<news>
<headline>Headline news 2</headline>
<subheadline>Subheadline news 2</subheadline>
<content>My text of news 2</content>
<newscount>4</newscount>
</news>
Problem, das dabei aufkommt ist, dass das Attribut
xhttp.responseXML im IE kein gültiges Objekt ist, das die gelieferte XML-Struktur als DOM-Baum enthält. DAss beim IE das korrekte XML ankommt habe ich mit einem
Code:
alert(xhttp.responseText);
geprüft. Wie gesagt: vielleicht sollte ich gleich ein JS-Framework wie jQuery verwenden, statt das mit der Hand zu coden.
