mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 07:29 Benutzername: Passwort: Auto-Login

Thema: komisches JS [solved] vom 23.08.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> komisches JS [solved]
Autor Nachricht
thepixture
Threadersteller

Dabei seit: 07.09.2005
Ort: Dresden
Alter: 46
Geschlecht: Männlich
Verfasst Do 23.08.2007 19:54
Titel

komisches JS [solved]

Antworten mit Zitat Zum Seitenanfang

Jetzt muss ich mein kleines und seltsames Problemchen mal hier in die Runde werfen.

Ich möchte gern folgendes Ajax-Formular von dieser Seite nutzen: Link

Mein angepasster Code:
Formular:
Code:

<div id="log">
<div id="log_res">
   <!-- spanner -->
</div>
</div>

<form id="kontakt_form" name="kontakt_form" method="get" action="inc/send.php">
   <table class="form">
      <tr><td><label for="firma">Firma</label></td><td><input type="text" id="firma" name="firma" maxlength="40" value="" /></td></tr>
      <tr><td><label for="name">Name</label></td><td><input type="text" id="name" name="name" maxlength="40" value="" /></td></tr>
      <tr><td><label for="vorname">Vorname</label></td><td><input type="text" id="vorname" name="vorname" maxlength="40" value="" /></td></tr>
      <tr><td><label for="email">e-Mail</label></td><td><input type="text" id="email" name="email" maxlength="40" value="" /></td></tr>
      <tr><td><label for="telefon">Telefon</label></td><td><input type="text" id="telefon" name="telefon" maxlength="40" value="" /></td></tr>
      <tr><td><label for="message">Mitteilung</label></td><td><textarea id="message" name="message" cols="30"></textarea></td></tr>
      <tr><td>&nbsp;</td><td><input type="submit" name="button" id="submitter" /></td></tr>
   </table>
</form>


send.php:
Code:

<?php
   error_reporting(E_NOTICE);

   function valid_email($str)
   {
      return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
   }

   if($_GET['name']!='' && $_GET['vorname']!='' && $_GET['email']!='' && valid_email($_GET['email'])==TRUE && strlen($_GET['message'])>10)
   {
      $to = 'blablabla';
      $headers =    'From: '.$_GET['email'].''. "\r\n" .
            'Reply-To: '.$_GET['email'].'' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
      $subject = "Hello! I'm testing my new ajax email that I got from roscripts.com";
      $message = htmlspecialchars($_GET['message']);
      
      if(mail($to, $subject, $message, $headers))
      {//we show the good guy only in one case and the bad one for the rest.
         echo 'Thank you '.$_POST['first_name'].'. Your message was sent';
      }
      else {
         echo "Message not sent. Please make sure you're not
            running this on localhost and also that you
            are allowed to run mail() function from your webserver";
      }
   }
   else {
      echo 'Please make sure you filled all the required fields,
      that you entered a valid email and also that your message
      contains more then 30 characters.';
   }
?>


teil von js-datei:
Code:

...
   function formMessage() {
      $('kontakt_form').addEvent('submit', function(e) {
   
      new Event(e).stop();
      var log = $('log_res').empty().addClass('ajax-loading');
      this.send({
         update: log,
         onComplete: function() {
            log.removeClass('ajax-loading');
         }
      });
      });
   }

   function ajaxRequest() {
      new Ajax(url, {
         method: 'get',
         update: $('content'),
         evalScripts: 'true',
         onComplete: function() { mySlide();}
      }).request();
      
      if (url == 'inhalte/kontakt.php') { formMessage(); }
   }
...


Das Formular wird aus einer separaten Datei in ein Div geladen (per mootools und ajax).Ich habs jetzt soweit abgeändert und angepasst, dass es eigentlich klappt, aber das Problem ist jetzt, wenn ich das Formular abschicke, wird die send.php in das aktuelle Fenster geladen und somit nur die Meldung, ob es erfolgreich abgeschickt wurde oder nicht, ausgegeben. Aber wenn ich in die Javascriptfunktion "formMessage()" ein alert('test'); an den Anfang einfüge, dann wird die Meldung korrekt in dem dafür vorgesehen Div ausgegeben.

Jetzt möcht ich mal wissen, warum nur dann?
Hoffe mir kann da jemand helfen.


Zuletzt bearbeitet von thepixture am Fr 24.08.2007 12:50, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
thepixture
Threadersteller

Dabei seit: 07.09.2005
Ort: Dresden
Alter: 46
Geschlecht: Männlich
Verfasst Fr 24.08.2007 12:50
Titel

Antworten mit Zitat Zum Seitenanfang

Hab den Fehler gefunden.

Die if-Abfrage muss mit in die onComplete-function. Zumindest funzt es jetzt so wie es soll.

Code:

   function ajaxRequest() {

      new Ajax(url, {
         method: 'get',
         update: $('content'),
         evalScripts: 'true',
         onComplete: function() {
            if (url == 'inhalte/kontakt.php') {
               formMessage();
            } else {
               mySlide();
            }
         }
      }).request();
   }
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
 
Ähnliche Themen komisches Dateiformat
[CSS] Komisches Problem
Flash - komisches Darstellungsproblem mit IE 7
Komisches Farbverhalten in Photoshop (?)
Illustrator CS 6 - komisches rechteck mit kontur in der
CSS Listen Menü - komisches Margin
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.