Ajax xml & firfox

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
dimis283
Δημοσιεύσεις: 118
Εγγραφή: 12 Ιουν 2006 00:53

Ajax xml & firfox

Δημοσίευση από dimis283 » 06 Μαρ 2008 00:02

Έχω 2 comboboxes.
Όταν αλλάζει τιμή το ένα με ajax/aml γεμίζει το άλλο.
Αλλά ο κώδικας λειτουρχεί στον ΙΕ6 αλλά όχι στο firefox!

Κώδικας: Επιλογή όλων

<?//Send some headers to keep the user's browser from caching the response.
header&#40;"Content-Type&#58; text/xml; charset=utf-8"&#41;;
header&#40;"Expires&#58; Mon, 26 Jul 1997 05&#58;00&#58;00 GMT" &#41;;
header&#40;"Last-Modified&#58; " . gmdate&#40; "D, d M Y H&#58;i&#58;s" &#41; . "GMT" &#41;;
header&#40;"Cache-Control&#58; no-cache, must-revalidate" &#41;;
header&#40;"Pragma&#58; no-cache" &#41;;
  ?>
<?php
 //Creates XML string and XML document using the DOM 
 $dom = new DomDocument&#40;'1.0'&#41;;
 //add root - <selectChoice> 
 $selectChoice = $dom->appendChild&#40;$dom->createElement&#40;'selectChoice'&#41;&#41;; 
 //add <electElement> element to <selectChoice>
 $selectElement = $selectChoice->appendChild&#40;$dom->createElement&#40;'selectElement'&#41;&#41;;
 //add <formName> element to <selectChoice> 
 $formName = $selectElement->appendChild&#40;$dom->createElement&#40;'formName'&#41;&#41;;
 //add <formElem> text node element to <title> 
 $formName->appendChild&#40; 
$dom->createTextNode&#40;'Form1'&#41;&#41;;
 //add <formElem> element to <selectChoice> 
 $formElem = $selectElement->appendChild&#40;$dom->createElement&#40;'formElem'&#41;&#41;;
 //add <formElem> text node element to <title> 
 $formElem->appendChild&#40; 
                 $dom->createTextNode&#40;'mdl'&#41;&#41;;
  //add root - <entry> 
 $entry = $selectChoice->appendChild&#40;$dom->createElement&#40;'entry'&#41;&#41;;
 //add <optionText> element to <entry>
 $optionText = $entry->appendChild&#40;$dom->createElement&#40;'optionText'&#41;&#41;;
   $optionText->appendChild&#40;
$dom->createTextNode&#40;'Hello test!'&#41;&#41;;
 //add <optionValue> element to <entry>
 $optionValue = $entry->appendChild&#40;$dom->createElement&#40;'optionValue'&#41;&#41;;
$optionValue->appendChild&#40;
 $dom->createTextNode&#40;'1'&#41;&#41;;
 //add <optionText> element to <entry>
 //add root - <entry> 
 $entry = $selectChoice->appendChild&#40;$dom->createElement&#40;'entry'&#41;&#41;;
 //add <optionText> element to <entry>
 $optionText = $entry->appendChild&#40;$dom->createElement&#40;'optionText'&#41;&#41;;
   $optionText->appendChild&#40;
 $dom->createTextNode&#40;'Hello!'&#41;&#41;;
 //add <optionValue> element to <entry>
 $optionValue = $entry->appendChild&#40;$dom->createElement&#40;'optionValue'&#41;&#41;;
   $optionValue->appendChild&#40;
                 $dom->createTextNode&#40;'1'&#41;&#41;;
 //generate xml 
 $dom->formatOutput = true; // set the formatOutput attribute of 
                            // domDocument to true 
 // save XML as string or file 
 $test1 = $dom->saveXML&#40;&#41;; // put string in test1 
echo $test1   ;
 ?>

Κώδικας: Επιλογή όλων

<selectChoice>
&#8722;
	<selectElement>
<formName>Form1</formName>
<formElem>mdl</formElem>
</selectElement>
&#8722;
	<entry>
<optionText>Hello test!</optionText>
<optionValue>1</optionValue>
</entry>
&#8722;
	<entry>
<optionText>Hello!</optionText>
<optionValue>1</optionValue>
</entry>
</selectChoice>
Ο κώδικας JS

Κώδικας: Επιλογή όλων

<script type="text/javascript">         
      function FillTerritory&#40;oElem,oTarget&#41;&#123;                           
        var strValue = oElem.options&#91;                                  
                     oElem.selectedIndex&#93;.value;
        var url = 'myyears.php';
        var strParams = 'q=' + strValue +                              
          "&f=" + oTarget.form.name +                                   
          "&e=" + oTarget.name;                                        
        var loader1 = new                                              
        net.ContentLoader&#40;url,FillDropDown,null,                       
                    "POST",strParams&#41;;                           
      &#125;
      function FillDropDown&#40;&#41;&#123;
        var xmlDoc = this.req.responseXML.documentElement;              

        var xSel = xmlDoc.                                             
           getElementsByTagName&#40;'selectElement'&#41;&#91;0&#93;;                   
        var strFName = xSel.                                           
           childNodes&#91;0&#93;.firstChild.nodeValue;                         
        var strEName = xSel.                                           
           childNodes&#91;1&#93;.firstChild.nodeValue;                         
            
        var objDDL = document.forms&#91;strFName&#93;.                         
           elements&#91;strEName&#93;;                                         
        objDDL.options.length = 0;                                     
            
        var xRows = xmlDoc.                                            
          getElementsByTagName&#40;'entry'&#41;;                               
        for&#40;i=0;i<xRows.length;i++&#41;&#123;                                   
          var theText = xRows&#91;i&#93;.                                      
              childNodes&#91;0&#93;.firstChild.nodeValue;                      
          var theValue = xRows&#91;i&#93;.                                     
              childNodes&#91;1&#93;.firstChild.nodeValue;                      
          var option = new Option&#40;theText,                             
                            theValue&#41;;                           
          objDDL.options.add&#40;option,                                   
                          objDDL.options.length&#41;;                      
        &#125;                                                              
      &#125;           
    </script>
Αυτό που κτυπάει είναι
Σφάλμα: xSel.childNodes[0].firstChild has no properties
childNodes[0].firstChild.nodeValue;

dimis283
Δημοσιεύσεις: 118
Εγγραφή: 12 Ιουν 2006 00:53

Ajax xml & firfox

Δημοσίευση από dimis283 » 06 Μαρ 2008 00:22

Ξέχασα να γράψω πως αν βάλω ένα αρχείο xml να διαβάζει η σελίδα λειτουργεί κανονικά με τον ff!

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Ajax xml & firfox

Δημοσίευση από dik_ » 06 Μαρ 2008 12:42

Κώδικας: Επιλογή όλων

net.ContentLoader...
Πολύ microsoftιά μυρίζει αυτό... το XMLHttpRequest object δημιουργείται με διαφορετικό τρόπο σε ΙΕ απ' ότι σε ffox...

dimis283
Δημοσιεύσεις: 118
Εγγραφή: 12 Ιουν 2006 00:53

Ajax xml & firfox

Δημοσίευση από dimis283 » 06 Μαρ 2008 15:00

Το net.ContentLoader είναι άπο ένα JS αρχείο (net.js) που δεν το έβαλα και κάνει όλη την ιστορία με το Ajax.
Τον κώδικα τον πήρα από ένα βιβλίο που δουλεύει και στον δική μου σελίδα αλλά όχι στον ff με το php που έχω.
Τελικά πήρα το prorotype.js και κάνω την δουλειά του ajax με αυτό και βλέπω ότι δουλεύει...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες