29. august 2010 - 10:56Der er
3 kommentarer og 1 løsning
Forms i Ajax, hvordan sender jeg svaret tilbage til DIV'en hvor input formen var ?
Jeg har oprettet en form der vises i en DIV på min HTML side, der ellers er skjult. Formen dannes af et AJAX kald, da indholdet er afhængig af 1-50 forskellige links til denne input form. Selve AJAX kaldet og den grundlæggende behandling af formen virker godt nok, men når resultatet skal vises, kommer det i browser vinduet og ikke inde i min DIV.
jeg formoder at jeg skal skrive et nyt AJAX kald, men vil gerne høre din mening.
Her er mit første ajax kald: function ajaxAddReview(beerid){ var ajaxRequest; // The variable that makes Ajax possible!
try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4 && ajaxRequest.status==200){
Ja du har noget af en pointe, efter at jeg stillede mit spørgsmål i går, har jeg arbejdet mere med problemet og kommet frem til en løsning.
I den skjulte DIV bygges formen op, og mit første ajaxrutine (ajaxAddReview) indsættes de nødvendige værdier i formen, + info til bruger om hvad der anmeldes.
I formen kaldes ajaxrutine 2 (ajaxAddReview2) som sender data til et nyt php script hvor data gemmes i databasen og resultat vises i vinduet (via ajaxAddReview2)
function ajaxAddReview(beerid){ var ajaxRequest; // The variable that makes Ajax possible!
try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4 && ajaxRequest.status==200){
function ajaxAddReview2(){ var ajaxRequest; // The variable that makes Ajax possible!
try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4 && ajaxRequest.status==200){
document.getElementById('addreviewtext3').innerHTML=ajaxRequest.responseText; // var link = '<td id="' + key +'"><a href="java script:CloseBeer(' + "'" + beerid + "','" + div + "','" + key + "')" +'";"><img src="images/close.gif" onmouseover="return overlib(\'Skjul Øldata\',WIDTH,90);" onmouseout="return nd();" border="0"></a></td>'; // document.getElementById(key).innerHTML=link; } } var beerid= document.getElementById('beerid').value; var color= document.getElementById('farve').value; var points= document.getElementById('points').value; var text=escape(document.getElementById('tekst').value); text=text.replace("+", "%2B"); text=text.replace("/", "%2F");
Naturligvis, opgaven lukkes, den er jo løst af mig selv.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.