ugrás a tartalomhoz

ajax problema

lacaaa · 2010. Dec. 5. (V), 13.20
sziasztok lenne egy kerdesem ajax al kapcsolatba.

van egy ajax oktato videom es elkezdtem, tanulmanyozni az ajax mukodeset a video tutorial segitsegevel de abba a problemaba utkoztem hogy a videon bemutatott peldaprogramok nem mukodnek pedig a video lepesei szerint csinalom vegig es ott mukodik nalam pedig nem mukodik oszehaszonlitottam a cdn levo pelda programokkal amit a videoba bemutatnak es telyesen ugyanugy van irva mind ott csak eppen nalam nem mukodik akod ami az erdekes hogy a cdn levo peldaprogram se mukodik nalam.

az lenne a kerdesem hogy mi kell pluszba az ajax hoz hogy menjen van egy wamp serverem feltelepitve es van egy phpdesigner 7 programom aminek van kodkiegeszitoje is a videon is csak ennyit hasznalnak.

elkuldom a peldaprogramot amit a video cd jerol szedtem le hatha vcalakinek mukodik es megtudjatok mondni mi a baj nalam.


<html>
<head>
<title>Untitled Document</title>
<script language="javascript">

var http_request = false;

if (window.XMLHttpRequest) { //Mozilla, Opera ...
http_request = new XMLHttpRequest();

}else if (window.ActiveXObject){ //IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert('Nem tudtam XMLHTTP példányt létrehozni!!');
}
}
}

function adatKuldes(url, divID) {
if (http_request)
{
var obj = document.getElementById(divID);
http_request.open("GET", url, true);

http_request.onreadystatechange = function() {
if ((http_request.readyState == 4) && (http_request.status == 200))
{
obj.innerHTML = http_request.responseText;
}
}
http_request.send(null);
}
}
</script>

</head>

<body>
<h1>Adatcsere a szerverrel</h1>
<form>
<input type="button" value="Üzenet megjelenítése" onClick="adatKuldes('szoveg.txt', 'celDiv')">
</form>

<div id="celDiv">Adat itt fog megjelenni.</div>

</body>
</html>

a segitseget elore is koszonom!
 
1

Működik

Poetro · 2010. Dec. 5. (V), 13.53
Nekem teljesen jól működik a következő:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript">
  var http_request = false;

  if (window.XMLHttpRequest) { //Mozilla, Opera ...
    http_request = new XMLHttpRequest();

  } else if (window.ActiveXObject) { //IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        alert('Nem tudtam XMLHTTP példányt létrehozni!!');
      }
    }
  }

  function adatKuldes(url, divID) {
    if (http_request) {
      var obj = document.getElementById(divID);
      http_request.open("GET", url, true);

      http_request.onreadystatechange = function() {
        if ((http_request.readyState == 4) && (http_request.status == 200)) {
          obj.innerHTML = http_request.responseText;
        }
      }
      http_request.send(null);
    }
  }
  </script>
</head>
<body>
<form>
  <input type="button" value="Üzenet megjelenítése" onClick="adatKuldes('szoveg.txt', 'celDiv')">
</form>
<div id="celDiv">Adat itt fog megjelenni.</div>
</body>
</html>
Természetesen egy HTTP szerveren kell a fenti HTML-t nézni, ha például http://localhost/HTML-fajlom-eleresi-utja.html és ekkor a szoveg.txt-nek is ott kell ugyanabban a könyvtárban elérhetőnek lennie. Például a fenti kódot a http://poetro.hu/sandbox/weblabor/ajax-problema.html olralra rakva elérhetőnek kell lennie a szoveg.txt-nek a http://poetro.hu/sandbox/weblabor/szoveg.txt címen
2

hello

lacaaa · 2010. Dec. 5. (V), 14.00
nalam egy konyvtarba volt a szoveg.txt es a html oldal is tehat elerheto kell legyen a html oldal szamara a szoveg txt az a gond hogy abszolut nem csinal semmit hiaba nyomogatom a gombot az oldalon meg azt se irja ki hogy nem tudott volna obiektum peldanyt letrehozni.

es meg egy furcsasagot eszleltem megpedig hogy kiirattam a keresnek a statusat es mikor betoltodoot az oldal nalam nem 200 volt hanem 0 es 4 es a readystate ezt se ertem hogy mikor az oldal be van toltve minden ok akkor nalam a bongeszobe miert 0 a status miert nem 200? a readystate viszont jo ?
3

Hogyan nézted?

Poetro · 2010. Dec. 5. (V), 14.54
De hogyan nézted a HTML tartalmadat? HTTP-n keresztül, amit egy webszerver szolgált ki? Vagy másképp kérdezem, mi volt a böngésző címsorában, amikor próbáltad?
4

hello

lacaaa · 2010. Dec. 7. (K), 14.24
localhost rol ment az egesz de mostmar megoldodott a problema megy minden nem tudom mi volt a gond sokszor probalkozas utan elindult es mostmar megy

koszonom a segitsegeteket.

meg esetleg egy anyi erdekelne hogy meglehet e oldalni ajaxba hogy amikor atkuldok egy erteket php nek akkor ne legyen kiiratas? csak simman az erteket kapja meg a php aztan azzal csinalhassak amit akarok.

Ugyanis minden hol csak olya megolast lattam hogy ertek atadas utan meghivjak az onreadystatechange fuggvenyt es ott ha minden rendeb van akkor innerHTML segitsegevel kiirasak az eredmeny.

Kiiratas nelkul valahogy meg lehet oldalni az ertekadatast?
5

Nem kell kiíratni

Poetro · 2010. Dec. 7. (K), 14.44
Attól még, hogy a PHP válaszolt valamit, azt nem kell kiírni. Válaszolni mindenképpen fog valamit, mivel egy HTTP kérésnek mindenképpen van valami válasza, még akkor is, ha nincsen rá szükséged. Legfeljebb nem csinálsz semmit a válasszal. De azt például a HTTP fejlécekből például tudni fogod, hogy a kérés egyáltalán sikeres volt-e, nem kaptál-e 403-404-es ne adj isten 5xx-es választ. Ha nem tudod, ezek mit jelentenek, akkor ajánlom pédául a HTTP status codes oldalt.