Wątek zablokowany 2014-10-17 08:36 przez dzek69.

Niedziałający skrypt z odczytujący tekst z serwera - ajax

2014-02-11 15:28

Rejestracja: 6 lat temu

Ostatnio: 5 lat temu

0

Mam taki problem dopiero zaczynam naukę z ajaxem z książki wziąłem pewien fragment kodu, który niestety nie działa.

<html>
<head>
<title>Ajax przy pracy</title>
<script language="javascript">
     var XMLHttpRequestObject = false;
    if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest ();
    }
    else if (window.AtiveXObject) {
     XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
   function getData (dataSource, divID)
   {
   if(XMLHttpRequestObject) {
      var obj = document.getElemetById(divID);
      XMLHttpRequestObject.open("GET", dataSource);
      XMLHttpRequest.onreadystatechange = function ()
   {
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
      obj.innerHTML = XMLHttpRequestObject.responseText;
      }
  }
XMLHttpRequestObject.send(null);
}
}
</script>
</head>
<body>
<H1>Przechwytywanie danych z Ajax</H1>
<form>
<input type = "button" value ="Display Message"
onclick = "getData('http://localhost/ajax/dane.txt',
'targetDiv')">
</form>
<div id="targetDiv">
<p> Przechwycone dane będą tu</p>
</div>
</body>
</html>

Zadaniem tego skryptu jest wyświetlenie tego co znajduje się w pliku http://localhost/ajax/dane.txt jednak te dane co są w tym pliku się nie wyświetlają po kliknięciu na dany przycisk.


<?
$a = 4; //jakaś liczba całkowita
$b = 5; // jakaś liczba całkowita
$c = $a + $b;
print $c;
?>
Mój pierwszy program(skrypt)
edytowany 3x, ostatnio: dzek69, 2014-10-17 08:36
@tomi0001 - sformatuj ten kod, bo bez wcięć jest bardzo nieczytelny... - furious programming 2014-02-11 15:41

Pozostało 580 znaków

Swr
2014-02-11 15:37
Swr

Rejestracja: 7 lat temu

Ostatnio: 18 godzin temu

0
  1. Polecam firebuga dla firefoxa do debugowania.
  2. Czy link do pliku jest na pewno ok?

EDIT:

Poprawione czesci:

  1. var obj = document.getElementById(divID);
  2. XMLHttpRequestObject.onreadystatechange = function ()
edytowany 1x, ostatnio: Swr, 2014-02-11 15:59
Tak link do pliku jest dobry i Firebug nie podreśla, żadnej linijki. - tomi0001 2014-02-11 15:54
nie powinien podrekślać tylko w konsoli powinien być błąd co do punktu pierwszego odnosnie poprawionych czesci - Swr 2014-02-11 16:01
Poprawiłem i nadal nie działa. - tomi0001 2014-02-11 16:07
wklej poprawiony kod - Swr 2014-02-11 16:16

Pozostało 580 znaków

2014-02-11 16:23

Rejestracja: 6 lat temu

Ostatnio: 5 lat temu

0

Wklejam

<html>
<head>
<title>Ajax przy pracy</title>
<script language="javascript">
var XMLHttpRequestObject = false;
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest ();
  }
  else if (window.AtiveXObject) {
    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>Przechwytywanie danych z Ajax</H1>
<form>
<input type = "button" value ="Display Message"
onclick = "getData('http://localhost/ajax/dane.txt',
'targetDiv')">
</form>
<div id="targetDiv">
<p> Przechwycone dane będą tu</p>
</div>
</body>
</html>

<?
$a = 4; //jakaś liczba całkowita
$b = 5; // jakaś liczba całkowita
$c = $a + $b;
print $c;
?>
Mój pierwszy program(skrypt)

Pozostało 580 znaków

Swr
2014-02-11 16:26
Swr

Rejestracja: 7 lat temu

Ostatnio: 18 godzin temu

0

mi działa :) ctrl + f5 na stronie. Może się nie odświeżyło :)

Pokaż pozostałe 6 komentarzy
To znaczy że ten skrypt się w ogóle nie wykonał, albo nie doszedł do tego miejsca. Wstaw tam breakpointy jakieś i odśwież stronę i zobacz czy gdzieś wskakuje w ogóle. - Shalom 2014-02-11 17:01
Nie wiem do końca co to jest breakpoint, ale wstawiłem instrukcje document.write("tekst"); w dwóch miejscach to się ta instrukcja wykonała. - tomi0001 2014-02-11 17:09
Najdziwniejsze jest to, że dzisiaj jak odpaliłem ten skrypt to działa, a od wczoraj nic nie zmieniałem. - tomi0001 2014-02-12 11:25
Magia. Albo cache... - Shalom 2014-02-12 11:32
Magii nie ma - szkoda. Więc cache :P - Swr 2014-02-12 11:42

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0