ThomasNiedfeld: Http-request

Werte Forumleser,
ich habe folgendes Problem,
ich möchte per http_request ein Formula absenden NUR leider kommt bei meiner sendmail.php keine Variabel an - was mache ich falsch??

  
<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>  
<script type="text/javascript">  
function makeRequest() {  
 http_request = false;  
 if (window.XMLHttpRequest) { // Mozilla, Safari,...  
  http_request = new XMLHttpRequest();  
  if (http_request.overrideMimeType) {  
   http_request.overrideMimeType("text/json");  
  }  
 } 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("End :( Can not create XMLHTTP-instance!");  
  return false;  
 }  
 aRequest = "sendmail.php"  
 http_request.onreadystatechange = alertContent;  
 http_request.open("POST", aRequest, true);  ///// hier soll der formularhinhalt gesetzt werden  
 http_request.setRequestHeader("Pragma", "no-cache");  
 http_request.setRequestHeader("Cache-Control", "must-revalidate");  
 http_request.setRequestHeader("If-Modified-Since", document.lastModified);  
 http_request.send(null);  
  
}  
function alertContent() {  
 if (http_request.readyState == 4) {  
   alert(http_request.responseText); //testausgabe !!!!!!!!  
 }  
}  
</script>  
</head>  
<body>  
Sende einen Text per Formula ...  
<form action="javascript:makeRequest()" method="POST">  
   eMail: <input type="text" name="email"><br/>  
   Betreff: <input type="text" name="betreff"><br/>  
   Message: <textarea name="message"></textarea><br/>  
  <input type="submit" value="abschicken">  
</form>  
</body>  
</html>  

Geht was so überhaupt - gib es andere ajax techniken für diesen Fall.
Bin um jeden Tip dankbar

oldTom

  1. Hallo!

    aRequest = "sendmail.php"
    http_request.onreadystatechange = alertContent;
    http_request.open("POST", aRequest, true);  ///// hier soll der formularhinhalt gesetzt werden
    http_request.setRequestHeader("Pragma", "no-cache");
    http_request.setRequestHeader("Cache-Control", "must-revalidate");
    http_request.setRequestHeader("If-Modified-Since", document.lastModified);
    http_request.send(null);

    Hier müsste doch auch irgendwie der Formularinhalt mitgeschickt werden, oder? Den Übergibst du aber offenbar nirgends.
    Auf dieser Ebene kenne ich mich mit XMLHTTPRequest leider nicht. Ich benutze immer Frameworks wie zb. Prototype oder ExtJS.
    Aber für mich schaut das so aus, als wenn du die Daten des Formulars nirgends mitübergibst.

    mfg
      frafu

  2. Hi,

    Geht was so überhaupt - gib es andere ajax techniken für diesen Fall.

    Benutze FF und Firebug, aktiviere das Netzwerkmodul und schau Dir die Request und Response-Einträge an. Du solltest da sowohl Dein Versandt als auch den zurückgelieferten String finden.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Benutze FF und Firebug, aktiviere das Netzwerkmodul und schau Dir die Request und Response-Einträge an.

      an dieser stelle kann ich nur immer wieder tamper data empfehlen ;)

      1. Hi,

        an dieser stelle kann ich nur immer wieder tamper data empfehlen ;)

        auch nicht schlecht! Und wenn wir schon bei den Empfehlungen sind, gibts hier was Entsprechendes für die unentwegten IE-Nutzer: Fiddler

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
    2. Hi,

      Geht was so überhaupt - gib es andere ajax techniken für diesen Fall.
      Benutze FF und Firebug, aktiviere das Netzwerkmodul und schau Dir die Request und Response-Einträge an. Du solltest da sowohl Dein Versandt als auch den zurückgelieferten String finden.

      Gruesse, Joachim

      Danke, mit GET klappt das super ;-)
      aber ich möchte Post nehmen. Bei GET
      nehme ich request = "sendmail.php" + para Wobei para = "?var1=sdlfjksh&.." usw
      wie mache ich das bei POST?
      request ist sendmail.php
      und
      http_request.send(para)
      funzt nicht - beim auslesen in der php datei kommt nichts zurück

      1. Hi,

        wie mache ich das bei POST?

        Schon mal das Archiv bemüht? z.B: http://forum.de.selfhtml.org/archiv/2006/5/t129655/

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
      2. Hi,

        bitte zitiere vernuenftig.

        Danke, mit GET klappt das super ;-)
        aber ich möchte Post nehmen. Bei GET
        nehme ich request = "sendmail.php" + para Wobei para = "?var1=sdlfjksh&.." usw
        wie mache ich das bei POST?

        RTFM!
        Schau in irgendeine Doku/Tutorial zu AJAX - da siehst du doch, dass du bei POST die Parameter mit dem Aufruf der send-Methode uebergibst.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“