Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Ce e gresit de nu merge
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> AJAX
Subiectul anterior :: Subiectul următor  
Autor Mesaj
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 7:21 pm    Titlul subiectului: Ce e gresit de nu merge  

De ce nu merge acest cod oare: index.html
Cod: <html>
  <head>
    <title>Ajax at work</title>

    <script language = "javascript">
      var XMLHttpRequestObject = false;

      if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
      }

      function getData(dataSource, divID)
      {
        if(XMLHttpRequestObject) {
          var obj = document.getElementById(divID);
          XMLHttpRequestObject.open("GET", dataSource);

          XMLHttpRequestObject.onreadystatechange = function()
          {
            if (XMLHttpRequestObject.readyState == 4 &&
              XMLHttpRequestObject.status == 200) {
                obj.innerHTML = XMLHttpRequestObject.responseText;
            }
          }

         // XMLHttpRequestObject.send(null);
        }
      }
    </script>
  </head>

  <body>

    <H1>Fetching data with Ajax</H1>

    <form>
      <input type = "button" value = "Display Message"
        onclick = "getData('data.txt', 'targetDiv')">
    </form>

    <div id="targetDiv">
      <p>The fetched data will go here.</p>
    </div>

  </body>
</html>


si data.txt
Cod: Tehnologie folosita: <b>Ajax</b>.
Rindul  doi <br>
trei
Sus  
Daemon7



Data înscrierii: 21/Iul/2005
Mesaje: 21
Locație: Timisoara

Trimis: Joi Dec 07, 2006 8:09 pm    Titlul subiectului:  

Cred ca nu ai pus corect id-ul div-ului.Linia asta:
var obj = document.getElementById(divID);

ar trebui sa fie mai degraba:
var obj = document.getElementById('targetDiv');
Sus  
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 8:18 pm    Titlul subiectului:  

Nu cred pentru ca eu am transmis targetDiv ca parametru functiei getData. Ceea ce spui e daca in pagina as avea numai un id , daca am vreo 10 ce fac?
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Joi Dec 07, 2006 8:33 pm    Titlul subiectului:  

In primul rand felicitari pentru modul in care ai pus problema (adica multumim ca nu ne-ai dat paste la 500 de linii de cod ci ai reprodus problema doar in liniile esentiale).

Apoi, ia pune open dupa onreadystatechange, si lasa si send(null), adica:
Cod:
          XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 &&
              XMLHttpRequestObject.status == 200) {
                obj.innerHTML = XMLHttpRequestObject.responseText;
            }
          }
          XMLHttpRequestObject.open("GET",dataSource,true);
          XMLHttpRequestObject.send(null);

vezi si: http://developer.mozilla.org/en/docs/AJAX:Getting_Started

P.S. folosind JQuery, toata problema se reducea la: $('targetDiv').load('data.txt')
Sus  
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 8:48 pm    Titlul subiectului:  

Am pus Cod: XMLHttpRequestObject.onreadystatechange = function() {
      XMLHttpRequestObject.open("GET",dataSource);
     XMLHttpRequestObject.send(null);
            if (XMLHttpRequestObject.readyState == 4 &&
              XMLHttpRequestObject.status == 200) {
      
                obj.innerHTML = XMLHttpRequestObject.responseText;
            }
          }
si tot nu-mi merge, ma dispera nu stiu de ce ...
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Joi Dec 07, 2006 8:53 pm    Titlul subiectului:  

Pune open _dupa_ onreadystatechange (adica dupa ce termini function-ul pus acolo), nu in interiorul functiei callback (nu vezi nici o diferenta intre ce ai scris tu si ce am scris eu?),
onreadystatechange este toata duda:

Cod:
 XMLHttpRequestObject.onreadystatechange = function() {
  if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
      obj.innerHTML = XMLHttpRequestObject.responseText;
  }
}

acum urmeaza open si send:

Cod:
XMLHttpRequestObject.open("GET",dataSource,true);
XMLHttpRequestObject.send(null);
Sus  
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 9:12 pm    Titlul subiectului:  

Asa e ok Cod: function getData(dataSource, divID)
      {
        if(XMLHttpRequestObject) {
          var obj = document.getElementById('divID');
         

         XMLHttpRequestObject.onreadystatechange = function() {
  if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
      obj.innerHTML = XMLHttpRequestObject.responseText;
  }
}
XMLHttpRequestObject.open("GET",dataSource,true);
XMLHttpRequestObject.send(null);

       

       
        }
      }

nu imi afiseaza nimic in div respectiv
Sus  
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 9:21 pm    Titlul subiectului:  

am constatat ca in IE merge dar in mozilla nu. ce sa-i fac..
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Joi Dec 07, 2006 9:30 pm    Titlul subiectului:  

Nu prea are de ce sa nu mearga, poate ai mai adaugat/modificat ceva? Eventual reposteaza tot codu' actualizat.

In firefox, ai pe Tools, Error Console, vezi poate-ti zice ceva p'acolo (deschide acea consola si da click pe buton-ul din pagina)
Sus  
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 9:36 pm    Titlul subiectului:  

postez tot codul
Cod: <html>
  <head>
    <title>Ajax at work</title>

    <script language = "javascript">
      var XMLHttpRequestObject = false;

      if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
      }

      function getData(dataSource, divID)
      {
        if(XMLHttpRequestObject) {
          var obj = document.getElementById(divID);
         
          XMLHttpRequestObject.onreadystatechange = function()
          {
            if (XMLHttpRequestObject.readyState == 4 &&
              XMLHttpRequestObject.status == 200) {
                obj.innerHTML = XMLHttpRequestObject.responseText;
            }
          }
      XMLHttpRequestObject.open("GET", dataSource);
          XMLHttpRequestObject.send(null);
        }
      }
    </script>
  </head>

  <body>

    <H1>Fetching data with Ajax</H1>

    <form>
      <input type = "button" value = "Display Message"
        onclick = "getData('data.txt', 'targetDiv')">
    </form>

    <div id="targetDiv">
      <p>The fetched data will go here.</p>
    </div>

  </body>
</html>
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Joi Dec 07, 2006 10:14 pm    Titlul subiectului:  

copy/paste si a mers. Vezi sa nu fi ramas prin cache versiunea veche, da un CTRL+SHIFT+R in Firefox.
Sus  
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 10:31 pm    Titlul subiectului:  

E foarte ciudat.
totul pare ok la mine dar nu merge .
Am instalat firebug si cind dau la console imi apare

GET http://localhost/ajax/VTC/data.txt
ResponseHeaders

"Tehnologie folosita: <b>Ajax</b>.
Rindul doi ewewewe <br>
trei" si cica in index1.html (line 31) unde am XMLHttpRequestObject.send(null); imi apare cu albastru.
Inteleg ca cieteste bine din data.txt, dar nu imi afiseaza nimic in div-ul respectiv. Am dat si CTRL+SHift+R. Tot nimic.
Ce sai mai fac?
Sus  
David



Data înscrierii: 28/Feb/2005
Mesaje: 121
Locație: Suceava

Trimis: Joi Dec 07, 2006 11:21 pm    Titlul subiectului:  

Se pare ca trebuie sa-i pun in loc de
[code]
XMLHttpRequestObject.open("GET", dataSource);
[code]

[code]
XMLHttpRequestObject.open("GET", dataSource,true);
[code][/code]
Sus  
ema



Data înscrierii: 20/Dec/2006
Mesaje: 1

Trimis: Mie Dec 20, 2006 11:59 pm    Titlul subiectului: despre codul care nu merge  

salut, codul acela trebuie executat pe un server de web, asa cum se specifica in carte...
incearca sa le uploadezi pe un ftp si sa le accesezi de acolo
mie mi-a mers
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> AJAX
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community