Avatar billede galthen Nybegynder
14. marts 2010 - 00:49 Der er 8 kommentarer og
1 løsning

Submit form i Ajax

Jeg har en simpel form som submitter på siden uden reload via ajax.
Det hele virker fint. Det vil sige, det trode jeg. Det kører fint i IE, men når jeg prøver i Firefox sker der intet når jeg trykker submit. Er der nogle som kan se hvad der skal gøres anderledes for at det skal virke i begge browsere?


<form action="java script:get(document.getElementById('myform'));" name="myform" id="myform" method="POST">

<script type="text/javascript" language="javascript">
  var http_request = false;
  function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
        }
      } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
              http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
      }
      if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
      }
     
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
  }

  function alertContents() {
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;           
        } else {
            alert('There was a problem with the request.');
        }
      }
  }
 
  function get(obj) {
      var poststr = "comment=" + encodeURI( document.getElementById("comment").value );
    poststr = poststr + "&id=" + encodeURI( document.getElementById("id").value );
      makePOSTRequest('control.asp?postcomment=yes', poststr);
  }
</script>
Avatar billede majbom Novice
14. marts 2010 - 12:33 #1
får du ikke en js-fejl i browseren?
Avatar billede galthen Nybegynder
14. marts 2010 - 13:09 #2
Nej. Når jeg trykker send i firefox sker der intet.
I IE bliver resultatet vist i en div med det samme.
Avatar billede majbom Novice
14. marts 2010 - 17:58 #3
det virker fint her: http://majbom.com/testarea/exp/904426/ osse i ff3.6...
Avatar billede galthen Nybegynder
15. marts 2010 - 09:55 #4
Når jeg tester din kode virker den fint.
Men når jeg ligger koden op på min server uden at ændre noget kommer den med fejlen "There was a problem with the request."

Nogen ide til hvad der går galt?
http://new.timekiller.com/test2.asp
Avatar billede majbom Novice
15. marts 2010 - 10:02 #5
jeg har ændret control.asp til control.php - du skal nok lige rette det tilbage igen :)
Avatar billede galthen Nybegynder
15. marts 2010 - 14:34 #6
Sådan... Nu virker det.
Hvordan over så jeg lige der stod php.

Firefox's store problem var at jeg skrev name="id"/name="comment" istedet for id="id"/id="comment"

Tusind tak. Nu kan håret få lov til at gro tilbage.
Læg et svar og få points :)
Avatar billede majbom Novice
15. marts 2010 - 15:42 #7
kommer her...

men du kan jo heller ikke finde et element med getElementById('comment'); hvis id'et er 'id'...
Avatar billede galthen Nybegynder
16. marts 2010 - 23:31 #8
Jo åbenbart i Internet Explorer hvor det virkede fra starten.
Firefox vil åbenbart kun have rigtig skrevet kode :)
Avatar billede majbom Novice
17. marts 2010 - 08:05 #9
okay, det er sq osse utroligt med IE...

tak for point :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester