Permalänk
Medlem

Fylla DIV med AJAX

Hejsan!

Jag sitter och försöker lära mig lite AJAX då jag vill att den ska hämta information från en php-fil och fylla en DIV med det. Själva utförandet går till på så sätt att man ska kunna klicka på en länk för ett fotbollslag och ett "popup-fönster" (leightbox) ska komma upp och visa information om laget. Informationen ska hämtas via AJAX från en php-fil.

Såhär ser min AJAX-kod ut:

function teamPop(teamid) { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("teamdiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","teampop.php?id=" + teamid,true); xmlhttp.send(); }

Här är sidan som informationen ska hämtas från: http://www.speculator.se/files/teampop.php?id=64

Såhär ser min länk ut:

<a href="#" class="lbOn" rel="teamdiv" onclick="teamPop('64')">LÄNK</a></div>

DIVen som ska fyllas med information:

<div style="display: none;" id="teamdiv" class="leightbox"></div>

Permalänk
Medlem
Skrivet av Wiborg86:

Hejsan!

Jag sitter och försöker lära mig lite AJAX då jag vill att den ska hämta information från en php-fil och fylla en DIV med det. Själva utförandet går till på så sätt att man ska kunna klicka på en länk för ett fotbollslag och ett "popup-fönster" (leightbox) ska komma upp och visa information om laget. Informationen ska hämtas via AJAX från en php-fil.

Såhär ser min AJAX-kod ut:

function teamPop(teamid) { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("teamdiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","teampop.php?id=" + teamid,true); xmlhttp.send(); }

Här är sidan som informationen ska hämtas från: http://www.speculator.se/files/teampop.php?id=64

Såhär ser min länk ut:

<a href="#" class="lbOn" rel="teamdiv" onclick="teamPop('64')">LÄNK</a></div>

DIVen som ska fyllas med information:

<div style="display: none;" id="teamdiv" class="leightbox"></div>

Du skriver vad du vill göra men inte vad som är fel.
Vid en snabb titt så ser det bra ut förrutom att du har "display:none" på elementet som skall presentera informationen.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Du skriver vad du vill göra men inte vad som är fel.
Vid en snabb titt så ser det bra ut förrutom att du har "display:none" på elementet som skall presentera informationen.

Problemet är att diven inte fylls med information. Anledningen till att det är display:none är för att vid klick ska det ändras och det ska skapas ett "popupfönster".

Permalänk
Medlem

testa byt ut
document.getElementById("teamdiv").innerHTML=xmlhttp.responseText;
mot
alert(xmlhttp.responseText);

för att ens se om du får någon data tillbaka, antar att du annars i princip följt http://www.w3schools.com/php/php_ajax_xml.asp

Permalänk
Medlem

Jo, precis den tutorialen jag följt

Jag har nu testat och testat och kommit fram till att leightboxen "krockar" med AJAX-funktionen. Båda fungerar separat, men inte tillsammans. Jag antar att man måste implementera funktionen som hämtar info i leightbox-scriptet.

Om ni tittar på länken nedan så är alla lag länkar till en "leightbox-div" och allt fungerar som det ska. Allt utom att jag inte vill att alla infoboxar ska laddas ner när sidan laddas utan när man klickar på länken.
http://www.speculator.se/serie&id=19

Någon som vet hur jag ska lösa detta?

Permalänk
Medlem
Skrivet av Wiborg86:

Jo, precis den tutorialen jag följt

Jag har nu testat och testat och kommit fram till att leightboxen "krockar" med AJAX-funktionen. Båda fungerar separat, men inte tillsammans. Jag antar att man måste implementera funktionen som hämtar info i leightbox-scriptet.

Om ni tittar på länken nedan så är alla lag länkar till en "leightbox-div" och allt fungerar som det ska. Allt utom att jag inte vill att alla infoboxar ska laddas ner när sidan laddas utan när man klickar på länken.
http://www.speculator.se/serie&id=19

Någon som vet hur jag ska lösa detta?

Jag ser att leightbox kräver Prototype.
Prototype har ju egen Ajax-funktionalitet. Det är väl en god idé att använda dessa.

Pröva om detta fungerar.

var id = 64; var url = "teampop.php?id="+id; new Ajax.Request(url, { method: 'get', onSuccess: function(transport) { alert(transport.responseText); } });

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Jag ser att leightbox kräver Prototype.
Prototype har ju egen Ajax-funktionalitet. Det är väl en god idé att använda dessa.

Pröva om detta fungerar.

var id = 64; var url = "teampop.php?id="+id; new Ajax.Request(url, { method: 'get', onSuccess: function(transport) { alert(transport.responseText); } });

Nej, jag får det inte att fungera...

Permalänk
Medlem
Skrivet av Wiborg86:

Nej, jag får det inte att fungera...

Jag vet inte om du har bytt från prototype men nu ser jag att jQuery implementeras på sidan.
För övrigt hade du glömt "files" i url:en.
Denna jQuery-kod har jag testat på din sida, och det fungerar:

$.ajax({ url: "files/teampop.php?id=254", success: function(message){ alert(message); } });

Dokumentation:
http://api.jquery.com/jQuery.ajax/

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Jag vet inte om du har bytt från prototype men nu ser jag att jQuery implementeras på sidan.
För övrigt hade du glömt "files" i url:en.
Denna jQuery-kod har jag testat på din sida, och det fungerar:

$.ajax({ url: "files/teampop.php?id=254", success: function(message){ alert(message); } });

Dokumentation:
http://api.jquery.com/jQuery.ajax/

Hehe, ja jag provade runt lite... Jag löste allt genom att byta "pop-up"-script. Kör nu med ett som har AJAX implementerat, var mindre krångel så

Tack förövrigt för hjälpen alla!

Permalänk

Vilket script använde du tillslut?
Var jag som tipsade dig om leightbox innan )

//Sonkan