[PHP & MySQL] Problem mit Java Script und PHP

.smartness
Morgen allerseits,
ich habe ein Formular nach Vronis Tut gecodet. Dies klappt auch alles richtig gut allerdings möchte ich das sich die Fehlermeldung, wenn man nicht alle Felder ausgefüllt hat, im Pop Up öffnet. Also habe ich mir einen Pop Up Generator mit Java Script zur Hand genommen und das dann versucht zu verbinden (mithilfe von Back Katrin). Aber da dies nun mit etlichen versuchen nicht geklappt hat weiß weder ich noch sie einen Rat.

Das ist der Code:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:

<?php
$name $_POST['name'];
$email $_POST['email'];
$hofname $_POST['hofname'];
$hofadresse $_POST['hofadresse'];
$bannerurl $_POST['bannerurl'];
$beschreibung $_POST['beschreibung'];
if ( ($name == "") OR ($email == "") OR ($hofadresse == "") OR ($bannerurl
== "") OR ($beschreibung == "") )
{
echo"<head>
<script language="JavaScript">
<!--
//PopUp-Generator von http://www.dauerstress.de
function Fehlermeldung()
{
var breite=280;
var hoehe=300;
var positionX=((screen.availWidth / 2) - breite / 2);
var positionY=((screen.availHeight / 2) - hoehe / 2);
var url='http://sitschju.si.funpic.de/Partnerfehler.htm';
pop=window.open('','','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,fullscreen=0,width='+breite+',height='+hoehe+',top=0,left=0');
pop.resizeTo(breite,hoehe); pop.moveTo(positionX,positionY);
pop.location=url; }//-><script></head><body onLoad='Fehlermeldung()'>";
}
else
{
$text "Name: $Name
eMail: $email
Hofname: $hofname
Hofadresse: $hofadresse
BannerURL: $bannerurl
Beschreibung: $beschreibung";
mail("RV.Sitschju@web.de",Partneranfrage,$text,"Partneranfrage von
$hofname/$name");
echo "<i>Deine Partneranfrage wurde erfolgreich abgeschickt!<br>Ich
werde sie so schnell wie m&ouml;glich bearbeiten und dir
antworten.</i><br><a href='javascript:%20history.back(-2)'
target='_self'>_back</a>";
}
?>


Danke schonmal!
.smartness
Ich brauch es ürbigens immer noch..
Also wer weiß etwas darüber?
.smartness
...
.smartness
...
theroorback
...

(ich hoff, ich darf mitmachen)
miss_trinity
Was ist den das für ein Mix-Max aus JS UND PHP??
Mach doch einfach ein Javascript und ruf dann beim klicken auf den Button (submit-Formular-button) die Javascript funktion auf, die dir die Felder prüft..
geht am einfachsten und funktioniert wunderbar Augenzwinkern

Edit: die Funktion gibt true zurück falls alles richtig ist, ansonsten false, und ruft gibt dann den fehler in einem popup oder text beim formular aus.
.smartness
äh ahh ^^
hast du dafür eventuell einen Code? smile
miss_trinity
Javascript für in den Header der html-Seite:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
<script language="JavaScript1.2">
function checkForm() {

    res true;
    
    reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+    //Name
                  '(\\@)'+                       //@-Zeichen
                  '([a-zA-Z0-9\\-\\.]+)'+        //Domain
                  '(\\.)'+                       //Punkt
                  '([a-zA-Z]{2,4})$');           //TLD
    
    //alle felder von der Adresse pr&#65533;fen...
    if (document.adress.name.value == "") {
        res false;
    }
    if(reg.test(document.adress.email.value) == false){
        res false;
    }
        //noch die restlichen formularfelder abfragen
        
    if(res == false){
        alert('Bitte füllen Sie das Formular vollständig aus!\n (Eine gültige Email-Adresse angeben, sowie die Bedingungen aktzeptieren)');
    }
    return res;
}

</script>


Code vom Formular, siehe den Button unten mit dem CheckForm()

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:

<form action=..... method="post" name="adress"> 
                <table cellpadding="3" cellspacing="0" border="0" width="100%">
                 <tr>
                      <td>Name: </td>
                        <td colspan="2"><input name="name" type="text"  value="<?php echo $_SESSION['address']['name']; ?>" size="50"></td>
                      </tr>
                 
             <!-- alle Felder vom Formular -->

                 <tr>
                 <td align="left">
                     <input type="submit" value="Zur&uuml;ck" name="back">
                 </td>
                 <td>
                       <input type="reset" value="Eingaben l&ouml;schen" name="reset">
                   </td>    
                   <td align="right">
                       <input name="adress" type="submit" value="Weiter" onclick="javascript: return checkForm()">
                   </td>
                   </tr>
                <tr>
                  <td colspan="4" class="schrift10">Es m&uuml;ssen alle Felder ausgef&uuml;llt werden. </td>
                </tr>
                
            </table>
            
            
            
            
            </form> 
.smartness
Herzlichen Dank smile
Bins gerade am ausprobieren...

<form action=..... method="post" name="adress">

Was muss bei die Punkte?
miss_trinity
Das was du brauchst.. das Formular müsstest du aber schon haben? Ich ruf einfach nochmal die gleiche page ab zum verarbeiten vom formular.. weiss aber nicht wie du es machst

php:
1:
<form action="<?php echo $_SERVER["PHP_SELF"] . "?summary=yes"?>" method="post" name="adress"> 
.smartness
*grübel*

Ich hab das so:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
<form action="action_formular.php" method="post">
<table width="80%" border="1">
 <tr>
   <td class="tadunkel" colspan="2" height="25"><b>Formular</b></td>
 </tr>
 <tr>
   <td class="tahell" width="50%"><b>Name</b></td>
   <td class="tahell" width="50%"><input type="text" name="name" style='width: 225;'></td>
 </tr>
 <tr>
   <td class="tahell" width="50%"><b>eMail</b></td>
   <td class="tahell" width="50%"><input type="text" name="email" value="@" style='width: 225;'></td>
 </tr>
 <tr>
   <td class="tahell" width="50%"><b>Hofname</b></td>
   <td class="tahell" width="50%"><input type="text" name="hofname" style='width: 225;'></td>
 </tr>
 <tr>
   <td class="tahell" width="50%"><b>Hofadresse</b></td>
   <td class="tahell" width="50%"><input type="text" name="hofadresse" value="http://" style='width: 225;'></td>
 </tr>
 <tr>
   <td class="tahell" width="50%"><b>Banner URL</b></td>
   <td class="tahell" width="50%"><input type="text" name="bannerurl" style='width: 225;'></td>
 </tr>
 <tr>
   <td class="tahell" width="50%"><b>Beschreibung des Hofes</b></td>
   <td class="tahell" width="50%"><textarea name="beschreibung" style='width: 225;'></textarea></td>
 </tr>
<tr>
 <td colspan="2" class="tahell"><input type="submit" value="Anfragen" onclick="javascript: return checkForm()" style='width: 225; text-align: center;'>
</tr>
</table>
</form>


^^ *ist noch ein totaler Anfänger in PHP*
miss_trinity
sieht gut aus. Jetzt musst du einfach noch das Javascript anpassen und es sollte funktionieren!

Edit: gib dem Formular noch einen Namen, dann kannst du im JS danach abfragen
.smartness
Was genau muss ich denn da anpassen?

[Und was muss dann überhaupt noch in action_formular.php?]

Dankeschön smile
miss_trinity
dort wo ich geschrieben habe:
//noch die restlichen formularfelder abfragen

musst du jetzt noch all deine formularfelder einfügen (und die ersten beiden anpassen natürlich)

also:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
...
if (document.adress.name.value == "") {
        res false;
    }
    if(reg.test(document.adress.email.value) == false){
        res false;
    }
if (document.adress.hofname.value == "") {
        res false;
    }
if (document.adress.hofadresse.value == "") {
        res false;
    }
if (document.adress.bannerurl.value == "") {
        res false;
    }
if (document.adress.beschreibung.value == "") {
        res false;
    }
....


in action_formular.php kommst du erst wenn das Formular richtig ausgefüllt wurde. Dort kommt jetzt rein was du mit den Daten machen willst..
.smartness
Hab ich auch gerade herausgefunden ^^
Allerdings hätte ich es falsch geschrieben von daher gut das du es noch Mal gezeigt hast, danke smile

Ich seh schon son Formular ist ganz schön schwierig..
Kannst du mir eventuell noch zeigen was in action_formular.php muss, bitte? smile

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:

<?php
$name $_POST['name'];
$email $_POST['email'];
$hofname $_POST['hofname'];
$hofadresse $_POST['hofadresse'];
$bannerurl $_POST['bannerurl'];
$beschreibung $_POST['beschreibung'];
if ( ($name == "") OR ($email == "") OR ($hofadresse == "") OR ($bannerurl
== "") OR ($beschreibung == "") )
{
echo"<i>Du hast nicht alle Felder ausgef&uuml;llt! Gehe zur&uuml;ck und korrigiere dies!</i><br><a href='javascript:%20history.back(-2)'
target='_self'>_back</a>";
}
else
{
$text "Name: $Name
eMail: $email
Hofname: $hofname
Hofadresse: $hofadresse
BannerURL: $bannerurl
Beschreibung: $beschreibung";
mail("RV.Sitschju@web.de",Partneranfrage,$text,"Partneranfrage von
$hofname/$name");
echo "<i>Deine Partneranfrage wurde erfolgreich abgeschickt!<br>Ich
werde sie so schnell wie m&ouml;glich bearbeiten und dir
antworten.</i><br><a href='javascript:%20history.back(-2)'
target='_self'>_back</a>";
}
?>


Das wäre im Moment noch drinne, wobei ich einen Teil davon ja garnicht mehr brauche da es ja schon im Java Script drinne ist?
miss_trinity
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:

<?php
$name $_POST['name'];
$email $_POST['email'];
$hofname $_POST['hofname'];
$hofadresse $_POST['hofadresse'];
$bannerurl $_POST['bannerurl'];
$beschreibung $_POST['beschreibung'];


$text "Name: $Name
eMail: $email
Hofname: $hofname
Hofadresse: $hofadresse
BannerURL: $bannerurl
Beschreibung: $beschreibung";
mail("RV.Sitschju@web.de",Partneranfrage,$text,"Partneranfrage von
$hofname/$name");
echo "<i>Deine Partneranfrage wurde erfolgreich abgeschickt!<br>Ich
werde sie so schnell wie m&ouml;glich bearbeiten und dir
antworten.</i><br><a href='javascript:%20history.back(-2)'
target='_self'>_back</a>";

?>



das müsste reichen, weil du ja die Formularabfrage schon in der Formular-page drin hast smile
.smartness
Das ist klasse smile
Funktioniert alles perfekt smile

Weißt du auch wie man das macht das sich de 'Erfolgreichabgesendet'-Text mit dem ganzen Div Lay drumherum öffnet? smile

Weil im Moment kommt nur eine normale Seite (war aber vorher auch schon..)

Wenn nicht dann ist es aber auch nicht schlimm.. hast mir eh schon so viel geholfen smile

Danke nochmal fröhlich
miss_trinity
Lies dich ein in CSS smile Damit kannst du schöne Sachen machen. Gibt viele Tuts und bsp. im Netz, einfach mal google fragen smile
.smartness
Ich mach eig fast alles mit Css aber danke, werde ich machen smile
miss_trinity
Ja dann sollte es ja kein Problem sein Augenzwinkern oder ich versteh nicht was du meinst..