[JavaScript] AJAX Post

Dieses Thema im Forum "Webentwicklung" wurde erstellt von gummel, 12. Februar 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. Februar 2008
    AJAX Post

    Hallo, nen kollege hat kein plan davon, wollt aber mal sowat machen^^ und da ich da nen schönes forum kenne wollte ich ihn gern helfen

    Also er möchte ein formular haben das beim abschicken auf der seite bleibt und sich nicht neu laden muss und eine das php datei ausgeführt wird.

    Wo steckt dort der fehler? er sagt es stehen bein klick auf abschicken steht in der url nur

    http://www.test.de/test/kontakt.html?Username=&Email=test%40mail.de&Email2=&Nachricht=&abschicken=abschicken

    bei der beispiel url wurde nur das feld email ausgefüllt, also net wundern^^ hier mal der code


    HTML:
    <html>
    <head>
    <title>Support</title>
    <script language="javascript">
    var XMLHttpRequestObject = false;
    
    if (window.XMLHttpRequest) {
     XMLHttpRequestObject = new XMLHttpRequest();
     } else if (window.ActiveXObject) {
     XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
     }
    
    function getOptions(Email)
    {
     var url = "kontakt.php";
     if(XMLHttpRequestObject) {
     XMLHTTPRequestObject.open("POST", url);
     XMLHTTPRequestObject.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded');
    
     XMLHttpRequestObject.onreadystatechange = function()
     {
     if (XMLHttpRequestObject.readyState == 4 &&
     XMLHttpRequestObject.status == 200) {
     var xmlDocument.getElementByTagName("kontakt");
     listOptions();
    
     }
     }
    
     XMLHTTPRequestObject.send("Email=" + Email);
    
     }
     }
    
    </script>
    </head>
    <body>
    
    <b>Supportformular</b>
    <div id="kontakt"></div>
    <table>
    <form><font size="2"><span style="font-family: Arial;"><br><br></font></span></font><table border="0" cellpadding="1" cellspacing="2">
    
    <tr>
    <td>Username:</td>
     <td><input value="" size="50" name="Username" type="text"></td>
     </tr>
    <tr>
     <td>Email:</td>
    <td><input value="" size="50" name="Email" type="Email"></td>
    </tr>
     <tr>
     <td>Email bestätigen:</td>
    <td><input value="" size="50" name="Email2" type="Email"></td>
    </tr>
    
    <tr>
    <td>Nachricht:</td>
    <td><textarea rows="10" name="Nachricht" cols="50"></textarea><br>
    </td></tr>
    <tr><td></td><td>
     <input name="abschicken" class="right" value="abschicken" type="submit"> <input class="right" value="Angaben löschen" name="Reset" type="reset">
    </td></tr>
    </form>
    </table>
    <br>
    
    </body>
    </html>

    und hier die php datei

    PHP:
    <?
    header ( "Content-type: text/xml" );
    $Header  "MIME-Version: 1.0\n" ;
    $Header  .=  "Content-type: text/html; charset=iso-8859-1\n" ;
    $Header  .=  "From: blub <test@mail.de>\n" ;
    $Dates  date ( "d.m.Y H:i:s" );
    $Email  $_POST [ 'Email' ];
    $Email2  $_POST [ 'Email2' ];
    $Username  $_POST [ 'Username' ];
    $Nachricht  $_POST [ 'Nachricht' ];
    $Header2  "MIME-Version: 1.0\n" ;
    $Header2  .=  "Content-type: text/html; charset=iso-8859-1\n" ;
    $Header2  .=  "From: " . $Username . " <" . $Email . ">\n" ;

            if(
    $_POST [ "abschicken" ])
        {



    //Mailversand
             
    $unsere  "automail@test.de" ;

             
    //Mail an Kunden
             
    $Empfaenger  "" . $Email . "" ;
             
    $wir  "test@mail.de" ;
             
    $Mailbetreff  "Deine Anfrage bei blub" ;
             
    $Mailbetreffwir  "Anfrage von: " . $Username . "" ;
             
    $Mailnachricht  "Hallo " . $Username . ",<br><br> wir haben folgendes von dir erhalten:<br><br>
    Email: "
    . $Email . "<br><br>Nachricht:<br><br>" . $Nachricht . "" ;
    //Mail an Kunden Ende




    //Mail an Uns
             
    $Mailnachrichtwir  ",Wir haben folgendes von " . $Username . " erhalten:<br><br>
    Email: "
    . $Email . "<br><br>Nachricht:<br><br>" . $Nachricht . "" ;

             
    mail ( $Empfaenger $Mailbetreff $Mailnachricht $Header );
             
    mail ( $wir $Mailbetreffwir $Mailnachrichtwir $Header2 );
             echo 
    '<?xml version="1.0"?>' ;
             echo 
    '<options>' ;
             echo 
    '<option>' ;
             echo 
    "<font color=\"red\"><b>Deine Anfrage wurde Erfolgreich abgeschickt!</b></font><br>" ;
             echo 
    '</option>' ;
             echo 
    '</options>' ;
             
    //Mail an uns Ende
    //Ende Mailversand
                     
    }

    ?>

    vllt kann ja einer helfen, falls nicht kann ich dat verstehen

    aber danke schonmal, bw´s gibts wie immer
     
  2. 12. Februar 2008
    AW: AJAX Post

    zauberwort: responseXML
    Code:
    var xmlDocument = XMLHttpRequestObject.responseXML;
    var rootElement = xmlDocument.getElementsByTagName('options');
    dazu musst du aber das <br> schließen. (<br />)
     
  3. 12. Februar 2008
    AW: AJAX Post

    also alles so lassen (außer dir <br> schließen) und das hier var xmlDocument.getElementByTagName("kontakt"); durch deinen code austauschen dann gehts?

    wenn ja, also bei mir klappts nit
     
  4. 13. Februar 2008
    AW: AJAX Post

    das font, b, br usw kannst btw auch weglassen, xhtml isses ned und in xml isses nur n normaler tag ohne weitere beteutung.

    try:
    HTML:
    <?xml kram ?>
    <result>
     <status>Okay oder nicht okay</status>
    </result>
    Code:
    var xmlDocument = XMLHttpRequestObject.responseXML;
    var rootElement = xmlDocument.getElementsByTagName('result');
    var status = rootElement.getElementsByTagName('status').firstChild.nodeValue;
    alert('Status: ' + status);
    wobei du in dem fall auf rootElement verzichten und direkt auf status zugreifen könntest, weils eh ned mehr is.

    oder du lässt die header weg und gibst einfach nnur via echo ne meldung aus. das kannst du dann mit deinAjaxObjekt.responseText abfragen.
     
  5. 13. Februar 2008
    AW: AJAX Post

    sry, erstmal danke für deine hilfe ... iwas macht mein kollege wohl falsch^^

    könntest du deine vorschläge einmal in die von mir gezeigten scripte einbauen?

    also die hauptsache ist das die daten verarbeitet werden und das echo kommt ... mehr will er nicht

    großes sry von ihm
     
  6. 13. Februar 2008
    AW: AJAX Post

    HTML:
    <script type="text/javascript">
     var xmlHttpRequestObject = false;
     
     if(window.XMLHttpRequest) //gecko, opera, ie7 ...
     xmlHttpRequestObject = new windowXMLHttpRequest();
     else if(window.ActiveXObject) //ie 6
     xmlHttpRequestObject = new window.ActiveXObject('Microsoft.XMLHTTP');
     
     function getOptions(email) {
     if(xmlHttpRequestObject === false) {
     alert('geht nicht!');
     return false;
     }
     
     with(xmlHttpRequestObject) {
     open('post', 'kontakt.php', true);
     onreadystatechange = function() {
     if(xmlHttpRequestObject.readyState != 4 || xmlHttpRequestObject.status != 200)
     return false
     
     var xml = xmlHttpRequestObject.responseXML;
     var status = xml.getElementsByTagName('status').item(0).firstChild.nodeValue;
     alert(status);
     }
     send('Email=' + email);
     } 
     }
    </script>
    PHP:
    <? php
        header
    ( 'Content-type: text/xml' );
        
    $Header  "MIME-Version: 1.0\r\n" ;
        
    $Header  .=  "Content-type: text/html; charset=iso-8859-1\r\n" ;
        
    $Header  .=  "From: blub <test@mail.de>\r\n" ;
        
    $Dates  date ( 'd.m.Y H:i:s' );
        
    $Email  $_POST [ 'Email' ];
        
    $Email2  $_POST [ 'Email2' ];
        
    $Username  $_POST [ 'Username' ];
        
    $Nachricht  $_POST [ 'Nachricht' ];
        
    $Header2  "MIME-Version: 1.0\n" ;
        
    $Header2  .=  "Content-type: text/html; charset=iso-8859-1\n" ;
        
    $Header2  .=  "From: " . $Username . " <" . $Email . ">\n" ;

         if(isset(
    $_POST [ 'abschicken' ])) {
            
    //Mailversand
            
    $unsere  'automail@test.de' ;
            
            
    //Mail an Kunden
            
    $Empfaenger  $Email ;
            
    $wir  'test@mail.de' ;
            
    $Mailbetreff  'Deine Anfrage bei blub' ;
            
    $Mailbetreffwir  'Anfrage von: '  $Username ;
            
    $Mailnachricht  'Hallo '  $Username  ',<br /><br /> wir haben folgendes von dir erhalten:<br /><br />'  .
            
    'Email: '  $Email  '<br /><br />Nachricht:<br /><br />'  $Nachricht ;
            
    //Mail an Kunden Ende
            
            //Mail an Uns
            
    $Mailnachrichtwir  'Wir haben folgendes von '  $Username  ' erhalten:<br /><br />'  .
            
    'Email: ".$Email."<br /><br />Nachricht:<br /><br />'  $Nachricht ;

            
    mail ( $Empfaenger $Mailbetreff $Mailnachricht $Header );
            
    mail ( $wir $Mailbetreffwir $Mailnachrichtwir $Header2 );
            echo 
    '<?xml version="1.0"?>' ;
            echo 
    '<result>' ;
            echo 
    '<status>Deine Anfrage wurde Erfolgreich abgeschickt!</status>' ;
            echo 
    '</result>' ;
            
    //Mail an uns Ende
            //Ende Mailversand
        
    //isset $_POST['abschicken']
    ?>
    nicht getestet
     
  7. 13. Februar 2008
    AW: AJAX Post

    hmm iwie klappt das nicht ... hab bei den if anweisungen die { klammern hinzugefügt und beim dem einen return das ; ... hat trotzdem nicht funktioniert ... ka ob ich was im html code falsch habe oder ka ... :/

    danke für deine hilfe, würd dich ja bewerten, aber das ich hab erst vorn paar tagen gemacht
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.