| 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 |
|
| |