 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
07.07.2008, 16:27
|
#1
|
|
TP-Member
Registriert seit: Aug 2007
|
Auswahl Selectbox mit versenden
hi leutz,
ich habe ein kontaktform in der der user per selectbox (Größe, Menge) eine auswahl treffen kann. nun möchte ich, dass die auswahl beim abschicken auch mit versand wird. ebenfalls soll das kontaktform erst abgeschickt werden wenn in einer checkbox ein häckchen gesetzt wird - bestätigung der AGB.
da ich nun nicht der php-profi bin bitte ich um eure hilfe.
mein bisheriger code dazu sieht wie folgt aus:
HTML-Code:
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" onsubmit="return chkForm()">
<p><?php
if($_POST['sent']==1)
{
if ($AGB!=1)
{
$meldung="Bitte akzeptiere die Allgemeinen Geschäftsbedingungen, um die Bestellung abzuschicken.";
}
if ($_POST['name'] AND $_POST['email'])
{
{
$message="Artikel:\n\n";
$message.="Groesse: ";
$message.=$_POST['size'];
$message.="\n";
$message.="Menge: ";
$message.=$_POST['menge'];
$message.="\n";
$message.="Name: ";
$message.=$_POST['name'];
$message.="\n";
$message.="Vorname: ";
$message.=$_POST['vorname'];
$message.="\n";
$message.="\n";
$message.="Strasse: ";
$message.=$_POST['strasse'];
$message.="\n";
$message.="Nr: ";
$message.=$_POST['nummer'];
$message.="\n";
$message.="PLZ: ";
$message.=$_POST['plz'];
$message.="\n";
$message.="Ort: ";
$message.=$_POST['ort'];
$message.="\n";
$message.="\n";
$message.='Email: ';
$message.=$_POST['email'];
$message.="\n";
$message.="\n";
$message.="Mitteilung: ";
$message.=$_POST['mitteilung'];
$message.="\n";
}
//echo $message;
if (mail("abc@test.de", "Kontaktform", $message, "From: ".$_POST['email']))
{
// Erfolgsmeldung ausgeben
echo '<p>Versandbestätigung</p>';
}
}
// $sent löschen, damit das Formular erneut angezeigt wird
/*unset($_POST['sent']);*/
}
// Formular anzeigen, wenn $sent nicht exisitert.
if(!$_POST['sent'])
{
?></p>
<!-- Verstecktes Feld zum Testen, ob Fehlermeldung erscheinen soll oder nicht -->
<input type="hidden" name="sent" value="1" style="display:none;" />
<label for="Size">Größe:</label>
<select name="Size" size="1">
<option>48 / 50</option>
<option>52 / 54</option>
</select>
<br />
<label for="Menge">Menge:</label>
<select name="Menge" size="1" <? @$menge = $_POST['menge']; ?>>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select>
<br />
<label for="preis">Preis:</label><p style="float:left;padding-top:5px;color:#4D73B1;"><strong>19,95 EUR</strong></p>
<br />
<br />
<label for="name">Name:</label><? @$name = $_POST['name']; ?>
<input name="name" type="text" id="Name" value="<? echo $name;?>" />
<br />
<label for="vorname">Vorname:</label><? @$vorname = $_POST['vorname']; ?>
<input name="vorname" type="text" id="Vorname" value="<? echo $vorname;?>" />
<br />
<label for="strasse">Straße:</label><? @$strasse = $_POST['strasse']; ?>
<input name="strasse" type="text" id="Strasse" value="<? echo $strasse;?>" />
<label for="nummer">Nr.:</label><? @$nummer = $_POST['nummer']; ?>
<input name="nummer" id="Nummer" type="text" size="4" maxlength="4" value="<? echo $nummer;?>" />
<br />
<label for="plz">PLZ:</label><? @$plz = $_POST['plz']; ?>
<input name="plz" id="PLZ" type="text" size="5" maxlength="5" value="<? echo $plz;?>" />
<label for="ort">Ort:</label><? @$ort = $_POST['ort']; ?>
<input name="ort" id="Ort" type="text" value="<? echo $ort;?>" />
<br />
<label for="email">Email:</label><? @$email = $_POST['email']; ?>
<input name="email" id="Email" type="text" value="<? echo $email;?>" />
<br />
<label for="nachricht">Mitteilung:</label><? @$mitteilung = $_POST['mitteilung']; ?>
<textarea name="Nachricht" cols="20" rows="4" id="Nachricht"><? echo $mitteilung;?></textarea>
<br />
<p style="color:red;padding-left:69px;"><? echo $meldung; ?></p><br />
<label for="AGB" style="padding-top:2px;">AGB:</label>
<input name="AGB" type="checkbox" id="AGB" value="1" style="width:auto;padding:0;margin-right:10px;"> Ich habe die <a href="agb.html" target="_blank">allgemeinen Geschäftsbedingungen</a> gelesen und akzeptiere sie.<br />
<br />
<input type="submit" name="Submit" value="Abschicken" />
</form>
<?php
}
?>
__________________
Ciaó Typochonder
|
|
|
07.07.2008, 18:20
|
#2
|
|
TP-Supporter
Registriert seit: Sep 2007
Ort: Mülheim an der Ruhr
|
du hast Menge einmal groß und einmal klein geschrieben, daran sollte es liegen denke ich.
wegen den AGB, du musst eine weitere if-abfrage bauen, bzw. das versenden des formulares in ein else packen.
Code:
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" onsubmit="return chkForm()">
<p><?php
if($_POST['sent']==1)
{
if ($AGB!=1)
{
$meldung="Bitte akzeptiere die Allgemeinen Geschäftsbedingungen, um die Bestellung abzuschicken.";
} ELSE
{
if ($_POST['name'] AND $_POST['email'])
{
...
ganz am ende nich vergessen, das else wieder mit einer } zu schließen.
|
|
|
07.07.2008, 23:12
|
#3
|
|
TP-Member
Registriert seit: Aug 2007
|
danke mogidala.
erstes "problem" gelöst. beim zweiten problem weiß ich nicht so recht wo genau die schließende klammer hin muss. bitte noch einen tipp.
__________________
Ciaó Typochonder
|
|
|
07.07.2008, 23:29
|
#4
|
|
TP-Supporter
Registriert seit: Sep 2007
Ort: Mülheim an der Ruhr
|
hallo!
wenn ich mich nicht täusche müsste es nach
Code:
// $sent löschen, damit das Formular erneut angezeigt wird
/*unset($_POST['sent']);*/
}
sein.
Denn du setzt das, was nach der "if (agb nicht geklickt) {meldung ausgeben} kommt ja in den else block. du musst also alles das einklammern, das passieren soll, wenn die AGBs geklickt sind.
hier nochmal der ganze (hoffentlich korrekte, ist ungetestet) code ordentlich eingerückt und kommentiert, damit du die einzelnen Bereiche erkennst 
Im Urpsrungscode war übrigens noch eine { zuviel drin!
Code:
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" onSubmit="return chkForm()">
<p>
<?php
if($_POST['sent']==1)
{
if ($AGB!=1) //wenn die AGB nicht akzeptiert wurden
{
$meldung="Bitte akzeptiere die Allgemeinen Geschäftsbedingungen, um die Bestellung abzuschicken.";
}
else //wenn die AGB akzeptiert wurden, soll das Formular verarbeitet werden
{
if ($_POST['name'] AND $_POST['email']) //Hier wird nur weitergemacht, wenn name udn mail gegeben sind
{
$message="Artikel:\n\n";
$message.="Groesse: ";
$message.=$_POST['size'];
$message.="\n";
$message.="Menge: ";
$message.=$_POST['menge'];
$message.="\n";
$message.="Name: ";
$message.=$_POST['name'];
$message.="\n";
$message.="Vorname: ";
$message.=$_POST['vorname'];
$message.="\n";
$message.="\n";
$message.="Strasse: ";
$message.=$_POST['strasse'];
$message.="\n";
$message.="Nr: ";
$message.=$_POST['nummer'];
$message.="\n";
$message.="PLZ: ";
$message.=$_POST['plz'];
$message.="\n";
$message.="Ort: ";
$message.=$_POST['ort'];
$message.="\n";
$message.="\n";
$message.='Email: ';
$message.=$_POST['email'];
$message.="\n";
$message.="\n";
$message.="Mitteilung: ";
$message.=$_POST['mitteilung'];
$message.="\n";
} //Ende der Verarbeitung der Daten für die Mail
//echo $message; //wenn die slashes vorm echo weggenommen werden, bekommt der Kunde seine nachricht nochmal angezeigt
if (mail("abc@test.de", "Kontaktform", $message, "From: ".$_POST['email'])) //mail wird verschickt
{
// Erfolgsmeldung ausgeben
echo '<p>Versandbestätigung</p>';
}
} //Ende von ELSE
// $sent löschen, damit das Formular erneut angezeigt wird
/*unset($_POST['sent']);*/
} //Ende von der ersten geöffneten Klammer (wenn Formular abgeschickt)
// Formular anzeigen, wenn $sent nicht exisitert.
if(!$_POST['sent'])
{
?>
</p>
<!-- Verstecktes Feld zum Testen, ob Fehlermeldung erscheinen soll oder nicht -->
<input type="hidden" name="sent" value="1" style="display:none;" />
<label for="Size">Größe:</label>
<select name="size" size="1">
<option>48 / 50</option>
<option>52 / 54</option>
</select>
<br />
<label for="Menge">Menge:</label>
<select name="menge" size="1" <? @$menge = $_POST['menge']; ?>>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select>
<br />
<label for="preis">Preis:</label>
<p style="float:left;padding-top:5px;color:#4D73B1;"><strong>19,95 EUR</strong></p>
<br />
<br />
<label for="name">Name:</label>
<? @$name = $_POST['name']; ?>
<input name="name" type="text" id="Name" value="<? echo $name;?>" />
<br />
<label for="vorname">Vorname:</label>
<? @$vorname = $_POST['vorname']; ?>
<input name="vorname" type="text" id="Vorname" value="<? echo $vorname;?>" />
<br />
<label for="strasse">Straße:</label>
<? @$strasse = $_POST['strasse']; ?>
<input name="strasse" type="text" id="Strasse" value="<? echo $strasse;?>" />
<label for="nummer">Nr.:</label>
<? @$nummer = $_POST['nummer']; ?>
<input name="nummer" id="Nummer" type="text" size="4" maxlength="4" value="<? echo $nummer;?>" />
<br />
<label for="plz">PLZ:</label>
<? @$plz = $_POST['plz']; ?>
<input name="plz" id="PLZ" type="text" size="5" maxlength="5" value="<? echo $plz;?>" />
<label for="ort">Ort:</label>
<? @$ort = $_POST['ort']; ?>
<input name="ort" id="Ort" type="text" value="<? echo $ort;?>" />
<br />
<label for="email">Email:</label>
<? @$email = $_POST['email']; ?>
<input name="email" id="Email" type="text" value="<? echo $email;?>" />
<br />
<label for="nachricht">Mitteilung:</label>
<? @$mitteilung = $_POST['mitteilung']; ?>
<textarea name="Nachricht" cols="20" rows="4" id="Nachricht"><? echo $mitteilung;?></textarea>
<br />
<p style="color:red;padding-left:69px;"><? echo $meldung; ?></p>
<br />
<label for="AGB" style="padding-top:2px;">AGB:</label>
<input name="AGB" type="checkbox" id="AGB" value="1" style="width:auto;padding:0;margin-right:10px;">
Ich habe die <a href="agb.html" target="_blank">allgemeinen Geschäftsbedingungen</a> gelesen und akzeptiere sie.<br />
<br />
<input type="submit" name="Submit" value="Abschicken" />
</form>
<?php
}
?>
|
|
|
07.07.2008, 23:35
|
#5
|
|
TP-Supporter
Registriert seit: Sep 2007
Ort: Mülheim an der Ruhr
|
du könntest übrigens diesen teil:
Code:
//Ende von der ersten geöffneten Klammer (wenn Formular abgeschickt)
// Formular anzeigen, wenn $sent nicht exisitert.
if(!$_POST['sent'])
auch einfach durch else ersetzen, denn genau die selbe variable wird ja ganz oben schon abgefragt, nur mit gegenteiligem wert. Im prinzip ist der code ja so:
wenn formular abgeschickt (im code: if($_POST['sent'])) {verarbeite das formular}
wenn formular nicht abgeschickt (im code: if(!$_POST['sent'])) {zeige das formular}
daraus könntest du wie gesagt einfach
if($_POST['sent']))
{verarbeite das formular}
ELSE {zeige das formular}
Verstehst was ich meine? macht technisch keinen unterschied, verkürzt aber den code etwas.
|
|
|
08.07.2008, 19:08
|
#6
|
|
TP-Member
Registriert seit: Aug 2007
|
wunderbar jetzt funzt es. nochmals besten dank @mogidala. hast mir wirklich super geholfen. 
__________________
Ciaó Typochonder
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:18 Uhr.
|
 |