Gå til innhold

Ajax n00b problem


Anbefalte innlegg

Prøver å lære meg litt ajax, men står fast når jeg skal returnere og fange opp et json objekt.

 

Dette er javascriptet:

<script>
function ajaxFunction(){
var ajaxRequest = getXMLHTTPRequest();

ajaxRequest.onreadystatechange = function()
{
	if(ajaxRequest.readyState == 4)
	{
	eval("jsondata = "+ajaxRequest.responseText+";"); 
	var ajaxDisplay=document.getElementById('ajaxDiv');
	ajaxDisplay.innerHTML = ajaxRequest.responseText;
	}
}

var page_id = document.jumptomove.page_id.value;
var section_id = document.jumptomove.page_id.value;
var move = document.jumptomove.move.value;
var queryString = '?page_id=' + page_id + '&section_id=' + section_id + '&move=' + move;

ajaxRequest.open("GET", "ajaxtestb.php" + queryString, true);
ajaxRequest.send(null); 
}
</script>

 

 

Mens ajaxtestb.php returnerer (echo'er) denne arrayen:

{"name":"Moa Junbi Sogi A","info":"","stance":"Closed Stance","height":null,"line":null,"facing":null,"motion":null,"stance_id":"491","height_id":"17","line_id":"22","facing_id":"23","motion_id":"40"}

 

Den array'en får jeg også opp om jeg går til følgende url:

http://localhost/path/ajaxtestb.php?page_id=143&section_id=476&move=0.a

 

Problemet er at Firebug sier syntax error for denne linjen:

eval("jsondata = "+ajaxRequest.responseText+";");

 

Fjerner jeg den, så ser jeg array'en fra ajaxtestb.php i <div>'en.

 

Poenget er vel at jeg skal kunne skrive alert(jsondata.name) og få opp "Moa Junbi Sogi A". Noen idéer ?

Endret av MikkelRev
Lenke til kommentar
Videoannonse
Annonse

Har et nytt ajax/js spørsmål.

 

Har en <select>-boks og noen <button> som alle kaller på den samme ajaxfunksjonen. Forskjellen er at de oppdaterer på forskjellige måter, men de er i prinsippet det samme.

 

<select onchange="ajaxfunc(arg1, arg2, <?php echo arg3?>)">....

 

Problemet med denne linjen er at arg3 kun oppdateres ved page-refresh.

 

Løsningen min er å ha en <div id="select></div> også i ajaxfunc() skrive ut select'en omtrent slik:

 

document.getElementById.innerHTML = "<select... onchange='ajax(" + var1 + ',' + var2 + ',' + var3 + ')";

 

Den ferdig genererte koden vil da ha

<div><select...></div><option>...</option></select>

 

Er dette måten å gjøre det på eller er det bedre måter?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...