Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-01-2005, 11:56   #1 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Question @kelor !!! kontaktformular

hi, kelor!
du hast mal ein goiles kontaktformular erstellt!

wo ist denn bitte die anzahl der ziffern für die postleitzahl einzustellen?;
bin aus österreich, da haben wir nur vierstellige zahen......

ActionScript:
  1. System.useCodepage=true;
  2.  
  3. /***********************************************
  4.      STRING PROTOTYPES                     *
  5. ***********************************************/
  6. String.prototype.leer = function(str) {
  7.     return (this.length>0 && this.charCodeAt()>32 && (this != str) && str!=undefined );
  8. };
  9.  
  10. String.prototype.isCorrect = function(){
  11.  
  12.     var l = this.length; var a = this.indexOf('@'); var p = this.indexOf('.'); var e = this.indexOf(' '); var diff = l-p;
  13.     return ( (l>8)&&(a> -1)&&(a>=2)&&(p>-1)&&(e== -1)&&(diff>2)&&(diff<5) );
  14. }
  15.  
  16. /***********************************************
  17.      KLASSE FORMMAILER                         *
  18. ***********************************************/
  19. function formMailer(tl){
  20.    this.ref = tl;
  21.    this.init();
  22. }
  23. var o = formMailer.prototype;
  24.  
  25. // initialisieren des LoadVars und der Arrays
  26. o.init=function(){
  27.    this.loadObject = new LoadVars();
  28.    this.loadObject.newURL = undefined;
  29.    ASSetPropFlags(this.loadObject,['defaultURL','newURL'],1);
  30.    this.watchTextFields=[];
  31.    this.conditions=[];
  32.    this.errorText=[];
  33. }
  34.  
  35. // defaultURL setzen
  36. o.setDefaultURL=function(str){
  37.     !this.isset ? (this.loadObject.defaultURL = str)(this.isset=1)(true) : false;
  38. }
  39.  
  40. // setzen der textfelder und default-text in den textfeldern
  41. o.catchTextFieldsName = function(arr){
  42.     this.arr1 = arr;
  43.     this.setElemNum();
  44.     this.addTextFieldsToWatch();
  45. }
  46.  
  47. o.fillArrOfTextFieldsVal = function(arr){
  48.     if(arr.length != this.getElemNum()) return false;
  49.     this.arr2 = arr;
  50.     return  this.setDefaultText();
  51. }
  52.  
  53. o.setDefaultText=function(){
  54.     var arr1=this.watchTextFields; var arr2=this.arr2;
  55.     if(arr1.length<1) return false;
  56.     for(var i=0;i<arr1.length;i++){
  57.         arr1[i].text = arr2[i];
  58.         arr1[i].old = arr2[i];
  59.         arr1[i].n =i;
  60.         this.setFocusForTextFields(arr1[i]);
  61.     }
  62. }
  63.  
  64. o.setDefaultErrorText=function(arr){
  65.     this.errorText = arr.concat();
  66. }
  67.  
  68. // textfelder focusieren und setzen von attributen in den feldern
  69. o.setFocusForTextFields=function(tf){
  70.        tf.onSetFocus = function() {
  71.            this.backgroundColor = 0xFFFFFF;
  72.            this.text ='';
  73.         };
  74.         tf.onKillFocus = function() {
  75.              this.backgroundColor = 0xFFFFFF;
  76.              if(this.text == '' ||  this.text.charCodeAt()==32) this.text = this.old;
  77.         }
  78. }
  79.    
  80. // object-array mit den textfeldern füllen zum späteren prüfen
  81. o.addTextFieldsToWatch=function(){
  82.     var tl = this.refvar arrFrom = this.arr1; var arrTo = this.watchTextFields;
  83.     var long = this.getElemNum();
  84.     for(var j=0; j<long; j++){
  85.         var elem = arrFrom[j];
  86.         arrTo[j]= tl[elem];
  87.         if(j == 4) arrTo[j].restrict = "0-9";
  88.     }
  89. }
  90.  
  91. // setzen/überprüfung ob die übergebenen arrays gleich lang sind
  92. o.setElemNum=function(){
  93.     this.requiredNum = this.arr1.length;
  94. }
  95.  
  96. o.getElemNum=function(){
  97.     return this.requiredNum;
  98. }
  99.  
  100. // setzen/überprüfungen der textfelder auf fehlerhafte/falsche/unvollständige eingaben
  101. o.textFieldsWithConditions=function(arr){
  102.     var checkArray=this.conditions; var myArr=this.watchTextFields;
  103.     var a= arr.length; var b=this.getElemNum();
  104.     if( a!= b) return trace('Inkorrekte Anzahl an Parametern !');
  105.       else    for(var i=0;i<a;i++)
  106.                   if(arr[i]) checkArray.push(myArr[i]);
  107. }
  108.  
  109. o.checkConditionsOf=function(elem){
  110.       var cond = this.conditions; var tl=this.ref; var star;
  111.       var ob = elem == 'email' ? 1 : ((elem == 'nm' || elem == 'nachricht') ? 2 : 3);
  112.       for(var i=0; i<cond.length;i++){
  113.           if(elem == cond[i]._name){
  114.               var obj = cond[i]; var txt = obj.text;
  115.               if(ob == 1){
  116.                           var c= txt.isCorrect();
  117.                           star = 'stern'+(obj.n+1);
  118.               }
  119.               if(ob == 2){
  120.                          var c= txt.leer(obj.old)? true : false;
  121.                          star = 'stern'+(obj.n+1);
  122.               }
  123.               if(ob == 3){
  124.                          var c= txt.length==5;
  125.                          star = 'stern'+(obj.n+1);
  126.               }
  127.               if(!c) { tl.mc_fehler.myT.text = t; tl.mc_fehler[star]._visible = true;}
  128.               else { tl.mc_fehler[star]._visible = false;}
  129.               return c;
  130.           }
  131.       }
  132. }
  133.  
  134. o.checkConditions=function(){
  135.     var arr = this.conditions; var l = arr.length; var max = l; var tl = this.ref;
  136.     for(var i=1; i<=l;i++){
  137.         var num = i-1;
  138.         var tmp = this.checkConditionsOf(arr[num]._name);
  139.         if(!tmp) {tl.mc_fehler.myT.text =this.errorText[arr[num].n]; break;}
  140.         else{ max--;}
  141.        
  142.     }
  143.    
  144.     if(max == 0){
  145.          tl.mc_fehler.myT.text = 'Ihre Email wird an den Server geleitet...';
  146.          return this.getLoadVarsVars();
  147.     }
  148. }
  149.  
  150.  
  151. // zurück setzen des fehler-mc´s
  152. o.setErrorMCByDefault=function(){
  153.       var tl = this.ref;
  154.       tl.mc_fehler.myT.text = '';
  155.       for(var i =1; i<=3;i++){
  156.           tl.mc_fehler['stern'+i]._visible=false;
  157.       }
  158. }
  159.  
  160.  
  161.  
  162. // alle methoden die mit dem LoadVars-Objekt zu tun haben
  163. o.sendMail=function(){
  164.     var LV = this.loadObject;
  165.     var LV2 = new LoadVars();
  166.     LV2.onLoad=function(suc){
  167.         if(suc) _root.myTT.text = this.answer;
  168.     }
  169.     trace(LV);
  170.     var adr = this.getLoadVarsURL();
  171.     LV.sendAndLoad(adr,LV2);
  172. }
  173.  
  174. o.getLoadVarsVars=function(){
  175.     var arr =this.watchTextFields;
  176.     var LV = this.loadObject;
  177.     for(var i=0; i<arr.length;i++){
  178.         var txt = arr[i].text;
  179.         var __name = arr[i]._name;
  180.         if(txt == arr[i].old) txt= ' KEINE ANGABE GEMACHT ';
  181.         LV[__name]=txt;
  182.     }
  183.     this.sendMail()
  184. }
  185.  
  186. o.setLoadVarsURL = function(u){
  187.     var LV = this.loadObject;
  188.     LV.newURL = u;
  189. }
  190.  
  191. o.getLoadVarsURL = function(){
  192.     var LV = this.loadObject; var adr;
  193.     adr = !LV.newURL ? LV.defaultURL : LV.newURL;
  194.     return adr;
  195. }
  196.  
  197.  
  198. delete o;
  199. /*************************************
  200.    sonstige variablen                *
  201. *************************************/
  202. var mc =mailer_mc.mc_fehler;
  203. mc.myT.text='';
  204. for(var i =1; i<=8;i++){
  205.     mc['stern'+i]._visible=false;
  206. }
  207. delete i;
  208. delete mc;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (15-01-2005 um 12:34 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 15-01-2005, 15:19   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hi.

Habe mal flink drübergeschaut und würde raten,
dass es hier ist:


if(ob == 3){
var
c= txt.length==5; <--- die fünft denke ich
star = 'stern'+(obj.n+1);

Kelor spricht nicht nur AS sondern AS-slang hahahahaha.....
Da ist es immer etwas schwierig.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------

Geändert von thebiz (15-01-2005 um 15:22 Uhr)
thebiz ist offline   Mit Zitat antworten
Alt 15-01-2005, 15:43   #3 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
genau das ist es... ig txt.length == 4 und dann passt es auch für die östreicher unter euch..

greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 15-01-2005, 16:16   #4 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
daunke!
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 15-01-2005, 17:41   #5 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
hi, kelor;

vorerstmal auch von mir einen herzlichen dank an dich, dieses formular ist genial und eine menge arbeit obendrein!

endverbraucher wie ich schnappen sich das formular und das war's......
ich hoffe, jeder , der das formular verendet, ist sich deiner arbeit bewußt..........

sodala, genug geschleimt, nun zu meiner frage:

nach korrektem ausfüllen des formulars und klick auf button erscheint der test:
"Ihre eMail wird an den Server weitergeleitet"

und dann passiert aber NIX MEHR!

die mails werden aber korrekt verschickt;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 15-01-2005, 17:49   #6 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
@ kelor

ähem..........

bin schon selber daraufgekommen;
ActionScript:
  1. mailer_mc.but_senden.onPress = function() {
  2.     this.gotoAndStop(2);//-----> die formmailer.fla hat ja gar keinen 2en frame......?};
  3.  
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 15-01-2005, 22:50   #7 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Zitat:
Zitat von andretti
ähem..........

bin schon selber daraufgekommen;
ActionScript:
  1. mailer_mc.but_senden.onPress = function() {
  2.     this.gotoAndStop(2);//-----> die formmailer.fla hat ja gar keinen 2en frame......?};
  3.  
ich sollte nicht so lange vorm pc hocken und arbeiten........

this.gotoAndStop(2); betrifft ja den button selbst...ergo den klickeffekt des buttons......

also weiß ich noch immer net, wie es da weitergehen soll.....
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 16-01-2005, 01:21   #8 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. o.checkConditions=function(){
  2.     var arr = this.conditions; var l = arr.length; var max = l; var tl = this.ref;
  3.     for(var i=1; i<=l;i++){
  4.         var num = i-1;
  5.         var tmp = this.checkConditionsOf(arr[num]._name);
  6.         if(!tmp) {tl.mc_fehler.myT.text =this.errorText[arr[num].n]; break;}
  7.         else{ max--;}
  8.        
  9.     }
  10.    
  11.     if(max == 0){
  12.          tl.mc_fehler.myT.text = 'Ihre Email wird an den Server geleitet...'; // <---  !!!! hier sitzt das drin...
  13.          return this.getLoadVarsVars();
  14.     }
  15. }


ich habe damals an dieser stelle das script abgebrochen...will sagen - ich habe hier keine weitere routine eingefügt.
wenn man möchte kann man hier, so wie ich es dann in meinem original hatte, auf die antwort des servers, respektive auf die antwort der php-datei warten, die einem dann n ok schickt, dass man weiter verarbeitet...

das könnte in der php so dann aussehen...

PHP-Code:
<?
$suchen 
"\r"
$ersetzen "\n"


$nachricht_neu str_replace($suchen,$ersetzen,$_POST[nachricht]); 
$text $_POST[nm]." machte folgende Angaben zu seiner Person:\n\n";
$text .= "Name: $_POST[nm]\n________\n\n";
$text .= "Firma: $_POST[firma]\n________\n\n";
$text .= "Straße: $_POST[str]\n________\n\n";
$text .= "Ort: $_POST[plz] $_POST[ort]\n________\n\n";
$text .= "eMail: $_POST[email]\n________\n\n\n";
$text .= "Nachricht:\n____________________________\n\n$nachricht_neu\n_____________________________";

$empfanger1 $_POST[empfaenger];
// mögliche weitere empfänger einfach via :
// $empfanger2 = "EMAIL-ADRESSE";
mail($empfanger1$_POST[betreff], $text"From: Kontaktformular von INTERNETSEITE");
//   mail($empfanger2, $_POST[betreff], $text, "From: Kontaktformular von INTERNETSEITE");

$auto_reply "Liebe[r] " .$_POST[nm].", danke für Ihre Nachricht !\n\n";
$auto_reply .= "Dies ist eine automatisch generierte Bestätigungsmail.\n\n";
$auto_reply .= "Ihre Email, die Sie über unsere Webseite abgeschickt hatten, ist erfolgreich bei uns eingegangen.\n\n";
$auto_reply .= "Ich werde mich schnellstmöglich mit Ihnen in Vebindung setzen\n\nIch bedanke mich für Ihr Interesse !\n\n\n\nDEIN NAME\n\nDEINE INTERNETSEITE\n";

mail("$_POST[email]""Bestätigungsmail"$auto_reply"From: INTERNETSEITE");

//hier könnte nun ein echo drin sitzen...
echo "&answer=true";

?>
in flash ist bereits für die antwort alles vorbereitet...
es existiert nur ein KLEINER tipfehler im script...und zwar folgender..


ActionScript:
  1. // alle methoden die mit dem LoadVars-Objekt zu tun haben
  2. o.sendMail=function(){
  3.     var LV = this.loadObject;
  4.     var LV2 = new LoadVars();
  5.     LV2.onLoad=function(suc){
  6.         if(suc) _root.myTT.text = this.answer// HIER! das MUSS anders aussehen...
  7.     }
  8.     trace(LV);
  9.     var adr = this.getLoadVarsURL();
  10.     LV.sendAndLoad(adr,LV2);
  11. }


muss so aussehen:
ActionScript:
  1. // alle methoden die mit dem LoadVars-Objekt zu tun haben
  2. o.sendMail=function(){
  3.     var LV = this.loadObject;
  4.     var LV2 = new LoadVars();
  5.     LV2.tl = this.ref;
  6.     LV2.onLoad=function(suc){
  7.         var path = this.tl;
  8.         if(suc) { if(this.answer == true){ path.mc_fehler.myT.text = 'Ihre email wurde erfolgreich versendet!';}}
  9.     }
  10.     trace(LV);
  11.     var adr = this.getLoadVarsURL();
  12.     LV.sendAndLoad(adr,LV2);
  13. }

also ändere das und dann sollte auch die meldung einen möglichen erfolg melden...



bei fragen...fragen!


greetz

kelor

Geändert von kelor (16-01-2005 um 01:23 Uhr)
kelor ist offline   Mit Zitat antworten
Alt 16-01-2005, 07:08   #9 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
das ist mal ein anständiges frühstück

dankääääää!
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 16-01-2005, 15:40   #10 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
sodele..andreas...jetzt sollte alles wieder sauber laufen...

viel spaß mit dem formmailer...
grüße nach össi-land



greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 16-01-2005, 19:00   #11 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Thumbs up big thx @ kelor!!!

nach einer kleinen eineinhalb(!!!!!!) stündigen unterhaltung mit kelor

habe ich es nun fertiggebracht, das kontaktformular endlich zum laufen zu bringen;

nun bin ich um einiges weiter im actionscript-wald, auch php habe ich nun ein wenig geschnupft.........



herzlichen dank, kelor !
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 16-01-2005, 23:31   #12 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
nicht das der anschein entsteht, dass formular wäre so komplex, dass man 1,5 stunden bräuchte, um es zum laufen zu bringen...

*mmuuaah*
des wär ja was...*lol*


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 17-01-2005, 06:31   #13 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Exclamation

kelor, was muss man verändern, wenn man den text, der von haus aus in den eingabefeldern hat, entfernen will?
ich habe mal die ganze zeile disabled, aber dann funkioniert das überprüfen nicht mehr..................
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 17-01-2005, 07:40   #14 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
mach leere strings draus...

meintest du doch, oder?!


greetz

kelor
kelor ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele