Einzelnen Beitrag anzeigen
Alt 04.02.2008, 14:19  
dr.e.
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

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.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline