Formular Javascript & PHP....

messa

Grünschnabel
Hallo,

hoffe Ihr könnt mir helfen.
Habe ein Formular gebastelt mit php und Javascript.
Mein Problem ist mit Javascript, undzwar will ich bei window.open die Variablen
mitübergeben die in die Felder eingegeben wurde, leider gelingt mir das nicht!
Sitze schon seit Std. dran. Danke im Vorraus.

Gruß Messa

PHP:
<?php

//Variablen definition 
$tnachricht = "Ihre Nachricht an uns*";
$fnachricht = "<font color='#ff3300'><b>Ihre Nachricht an uns*</b></font>";
$enachricht = ($_POST["Nachricht"]);

$tvorname = "Vorname*";
$fvorname = "<font color='#ff3300'><b>Vorname*</b></font>";
$evorname = ($_POST["Vorname"]);

$tnachname = "Nachname*";
$fnachname = "<font color='#ff3300'><b>Nachname*</b></font>";
$enachname = ($_POST["Nachname"]);

$temail = "eMail*";
$femail = "<font color='#ff3300'><b>eMail*</b></font>";
$eemail = ($_POST["email"]);

$aktion = "";
$self = "$PHP_SELF";
$script = "../../scripte/VMForm.cgi";

//restlichen Felder ausfuellen
$eanrede = ($_POST["Anrede"]);
$etitel = ($_POST["Titel"]);
$efirma = ($_POST["Firma"]);
$efunktion = ($_POST["Funktion"]);
$etelefon = ($_POST["Telefon"]);
$emobil = ($_POST["Mobil"]);
$estrasse = ($_POST["Strasse"]);
$ehausnummer = ($_POST["Hausnummer"]);
$eplz = ($_POST["Plz"]);
$eort = ($_POST["Ort"]);
$eland = ($_POST["Land"]);
$eanruf = ($_POST["Anruf"]);
$kopie = ($_POST["Kopie"]);

//Fehlermeldung
if(isset($_POST["subject"])) 
	{
	if(empty($_POST["Nachricht"])) {
		$tnachricht = "$fnachricht";
	} else {}
	
	if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$",
		stripslashes(trim($_POST['email'])))) {
		$temail = "$femail";
	} else {}
	 
	if(empty($_POST["Anrede"])) {
		$tanrede = "$fanrede";
	} else {}
		
	if(empty($_POST["Vorname"])) {
		$tvorname = "$fvorname";
	} else {}
	
	if(empty($_POST["Nachname"])) {
		$tnachname = "$fnachname";
	} else {}
	 }
	
	if($kopie == checked) {
	$textnachricht = "Kopie Ihrer Email\n--------------------------------------------------------------\n\nNachricht: $enachricht\n\nIch moechte Angerufen werden: $eanruf\n\nAnrede: $eanrede\n\nTitel: $etitel\n\nVorname: $evorname\n\nNachname: $enachname\n\nFirma: $efirma\n\nFunktion: $efunktion\n\nEmail: $eemail\n\nTelefon: $etelefon\n\nMobil: $emobil\n\nStrasse: $estrasse, $ehausnummer\n\nPLZ, Ort: $eplz, $eort\n\nLand: $eland\n\n--------------------------------------------------------------\n";
	
	mail($eemail,"Kopie Ihrer Email",$textnachricht,"From: ich@meinepage.de");
	}

?>

<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
		<title>Email</title>
		<meta name="generator">
		<meta name="author" >
		<meta name="description">
		<meta name="keywords" content="">
		<link href="../../VM.css" rel="stylesheet" type="text/css" media="all">
		<script type="text/javascript"><!--
			
		var test = document.formular.Vorname.value;
		var test2 = document.formular.Nachname.value;
		
	
			
function senden() { 
if (document.formular.Nachricht.value != "" && document.formular.Vorname.value != "" && document.formular.Nachname.value != "" && document.formular.email.value != ""){
		document.formular.submit();
		}
		else{window.open('http://....email.php?test','content')}	
			
			alert(test)	 
}
//-->
</script>
 
Mag an meinem Intellekt liegen, aber warum nutzt Du JS für Dein Formular.
Bin nun nicht so gut in JS, als dass ich Deinen Code ganz durchgeschaut habe, aber ich erkenne auf den ersten Blick nix, was man nicht auch per php erledigen könnte.
 
Achso....habe nicht da son Plan! Dachte das wäre nicht mit PHP möglich.
Hast du vll ein ansatz für mich? Wo ich das anderes machen könnte?

Danke
 
Also Formulare ohne einen Reload zu checken ist ohne Javascript definitv nicht möglich.

Wenn du aber relaods magst und sowieso nicht glaubst, dass alle User deiner Seite Javascript haben, ist php die bessere Wahl. Musst du wissen, ich würde es aber in jedem Fall nochmal mit php überprüfen, weil man Javascript als User auch ausschalten kann.
Javascript:
var test = document.formular.Vorname.value;
var test2 = document.formular.Nachname.value; 

function senden() { 
if (document.formular.Nachricht.value != "" && document.formular.Vorname.value != "" && document.formular.Nachname.value != "" && document.formular.email.value != ""){
        document.formular.submit();
        }
        else{window.open('http://....email.php?test','content')}    
            
            alert(test)     
}
Das hier ist auf jeden Fall Murks. Wie soll Javascript erkennen, dass du die Variable mit Namen "test" meinst, wenn du sie in einen String schreibst? Das geht bei php auch nicht (zumindest nicht ohne sie durch ein "$" als Variable zu kennzeichen und selbst dann ist es eigentlich Murks).
Wenn, dann muss es eher so, oder so ähnlich aussenen:
Javascript:
var test = document.formular.Vorname.value;
var test2 = document.formular.Nachname.value; 

function senden() { 
if (test && document.formular.Vorname.value && test2 && document.formular.email.value){
        document.formular.submit();
        }
        else{window.open('http://....email.php?Nachricht='+ test,'content')}    
            
            alert(test)     
}
Die Vergleichoperatoren kannst du dir auch sparen, weil Javascript bei einem leeren String von sich aus false zurück gibt. Außerdem verstehe ich nicht, warum du das Fenster nur öffnen willst, wenn alle Felder im Formular leer sind und dann leere Werte per Get übertragen willst.
Du hast das anscheinend einiges falsch gemacht.

Jetzt nur noch was zur allgemeinen Vorgehensweise: Wenn du ein Javascript-Problem hast, ist es sinnvoll das auch ins Javascript-Forum zu schreiben. Klingt logisch, ist auch so.
 
Zuletzt bearbeitet:
Hallo danke für die Antwort,

ich will wenn die 4 Felder ausgefüllt sind sich das Formular abschickt und wenn dort was fehlt soll der das Formular nochmal öffnen und die Werte die eingegeben wurden übermittelen! U know? Ich dachte das geht nur mit JavaScript. Weil es soll sich "wie oben im Script" die Felder Rot zeigen die nicht ausgefüllt sind!

Danke
 
Zurück