|
| Autor |
Nachricht |
oliwol Helfer [User]


Anmeldung: 15.12.05 Beiträge: 170 Wohnort: Berlin
|
Verfasst am: 20.04.2006, 10:15 Titel: Formular soll Daten aus Select-Tag ziehen |
|
|
Hallo erstmal.....
Also hab ein Formular (Rückruf - Formular) mit PHP erstellt, und soweit funktioniert auch alles....
außer: :...
Das Formular soll gibt immer eine Fehlermeldung der Uhrzeit aus
Wie kann das Formular nun die Zeit aus dem Select-Tag ziehen
Soll also bei jeder Zeit abgesendet werden nur wenn keine Zeit ausgewählt wurde dann kann die Fehlermeldung kommen...
Hier der Quelltext:
| Code: | <?php
//Mit $_POST[['senden']==1 wird getestet,
//ob das Formular abgeschickt wurde
if ($_POST['senden']==1)
{
//Ausgeben der eingegebenen Formulardaten
echo '<br>Ihre Telefonnummer ist <b>'.$_POST['vor'] .' / ' .$_POST['tel'];
echo '</b>';
//Testen ob alle Felder ausgefüllt wurden
//und gegebenenfalls Fehlermeldung ausgeben
//und $_POST['senden'] löschen, damit das Formular erneut angezeigt wird
if (!$_POST['thema']) {echo '<br><b>bitte geben Sie einen Betreff ein</b>';unset($_POST['senden']);}
if (!$_POST['namen']) {echo '<br><b>bitte geben Sie Ihren Namen ein</b>';unset($_POST['senden']);}
if (!$_POST['vor']) {echo '<br><b>bitte geben Sie Ihre Vorwahl ein</b>';unset($_POST['senden']);}
if (!$_POST['tel']) {echo '<br><b>bitte geben Sie Ihre Telefonnummer ein</b>';unset($_POST['senden']);}
if (!$_POST['zeit']) {echo '<br><b>Bitte wählen Sie eine Uhrzeit aus';unset($_POST['senden']);}
//Testen ob alle Felder ausgefüllt wurden,
//wenn ja die E-Mail vorbereiten und verschicken
if($_POST['thema'] AND $_POST['namen'] AND $_POST['vor'] AND $_POST['tel'] AND $_POST['zeit'])
{
//Den Nachrichtentext der E-Mail für
//eine HTML-Mail zusammenbauen
$message="<html><body>";
$message.="<p>Thema: ";
$message.=$_POST['thema'];
$message.="<br>Name: ";
$message.=$_POST['namen'];
$message.="<br>Vorwahl: ";
$message.=$_POST['vor'];
$message.="<br>Telefonnummer: ";
$message.=$_POST['tel'];
$message.="<br>Uhrzeit: ";
$message.=$_POST['zeit'];
$message.="</p></body></html>";
//Den Header der E-Mail erstellen
$header="Content - Type: text/html";
//Die E-Mail versenden,
//wenn kein Fehler auftritt,
//wird eine Erfolgsmeldung ausgegeben,
//andernfalls eien Fehlermeldung
if(mail("info@XXXXXX.de", "Eine E-Mail von XXXXXXXXXXXX.de",
$message, $header))
{
//Erfolgsmeldung ausgeben
echo "<br><font class=\"erfolg\">Die Sendung Ihrer Nachricht war erfolgreich. Wir werden Sie zwischen </font>" .$_POST['zeit'] .' <font class=\"erfolg\"> zurückrufen</font>';
}
else
{
//Fehlermeldung ausgeben
echo "<br>Die Sendung Ihrer Nachricht ist fehlgeschlagen, bitte
versuchen Sie es später noch einmal.";
//$senden löschen, damit das Formular erneut angezeigt wird
unset($_POST['senden']);
}
}//Schließende Klammer für if($email)
}//Schließende Klammer für if($senden==1)
//Das Formular anzeigen wenn $_POST['senden'] nicht existiert.
if(!$_POST['senden'])
{
?>
<form action="<? echo $_SERVER['PHP_SELFRÜCK']; ?>" method="post">
<!--verstecktes Feld um zu Testen,-->
<!--ob das Formular aufgerufen werden soll oder nicht-->
<input type="hidden" name="senden" value="1">
<table align="left" class="rückruf">
<tr>
<th class="inhalt">
kontaktformular
</th>
</tr>
<tr>
<td class="webhosting">
<input id="kontakt" type="text" name="thema" value="<?php echo htmlentities($_POST['thema']);?>" maxlength="70" size="35"><br />
<font class="kontakt">betreff</font> <img src="Grafik/pfeil.jpg" name="Pfeil" width="11" height="6" />
<br />
<input id="kontakt" type="text" name="namen" value="<?php echo htmlentities($_POST['namen']);?>" maxlength="40" size="35"><br />
<font class="kontakt">name</font> <img src="Grafik/pfeil.jpg" name="Pfeil" width="11" height="6" />
<br />
<input id="kontakt" type="text" name="vor" maxlength="40" value="<?php echo htmlentities($_POST['vor']);?>" size="7"> /
<input id="kontakt" type="text" name="tel" maxlength="40" value="<?php echo htmlentities($_POST['tel']);?>" size="22"><br />
<font class="kontakt">vorwahl + telefonnummer</font> <img src="Grafik/pfeil.jpg" name="Pfeil" width="11" height="6" />
<br />
<select size="1" name="zeit">
<option value="">[ bitte auswählen ]</option>
<option value="">----------------------------------------------------</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 9:00 - 10:00 Uhr</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 10:00 - 11:00 Uhr</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 11:00 - 12:00 Uhr</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 13:00 - 14:00 Uhr</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 14:00 - 15:00 Uhr</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 15:00 - 16:00 Uhr</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 16:00 - 17:00 Uhr</option>
<option value="<?php echo htmlentities($_POST['zeit']);?>">zwischen 17:00 - 18:00 Uhr</option>
<option value="">----------------------------------------------------</option>
</select><br />
<font class="kontakt">uhrzeit</font> <img src="Grafik/pfeil.jpg" name="Pfeil" width="11" height="6" />
<br /><br />
<input type="submit" name="submit" value="senden">
<input type="reset" value="löschen">
</td>
</tr>
</table>
</form>
<?php
}//schließende Klammer für If(!$sent)
?> |
Vielen Dank im Vorraus
Grüße Oli
|
|
| Nach oben |
|
 |
Metaman Power-Poster [User]


Anmeldung: 20.11.05 Beiträge: 635
|
Verfasst am: 20.04.2006, 10:31 Titel: |
|
|
Auswahlboxen sollte man wie ein Ayray behandeln
also ändere mal
| Code: | | <select size="1" name="zeit"> |
in
| Code: | | <select size="1" name="zeit[]"> |
die optionsfelder selber solltest du dann auch mit richtigen Werten belegen
| Code: | | <option value="9-10 Uhr">zwischen 9:00 - 10:00 Uhr</option> |
um jetzt an diese Zeit zu kommen, must du diesen Array Zeit aufsplitten
z.b. so
| Code: | while(list($feld, $inhalt) = @each($_POST['zeit'])) {
if(!$inhalt || $inhalt=="")
$zeit=$inhalt;
} |
dann hast Du in $zeit die Wert aus der Auswahlbox _________________
Webmaster Lexikon
Schnäppchensuche
Wenn Du einen Clan Sponsor suchst, schreibe mich NICHT an!!!
|
|
| Nach oben |
|
 |
oliwol Helfer [User]


Anmeldung: 15.12.05 Beiträge: 170 Wohnort: Berlin
|
Verfasst am: 20.04.2006, 10:49 Titel: RE... |
|
|
Also hab alles soweit geändert...
bei option value hab ich die werte eingegeben (hät ich selber drauf kommen müssen will ja schliesslich in der Email sehen wann )
so hab die Klammer bei zeit gesetzt
und den array gesplittet
Resultat:
Die E-Mail wird verschickt
Die erfolgsmeldung wird ausgegeben
jedoch auch die fehlermeldung der uhrzeit
aber da hab ich glaub ich noch ein fehler:
| Code: | if (!$_POST['thema']) {echo '<br><b>bitte geben Sie einen Betreff ein</b>';unset($_POST['senden']);}
if (!$_POST['namen']) {echo '<br><b>bitte geben Sie Ihren Namen ein</b>';unset($_POST['senden']);}
if (!$_POST['vor']) {echo '<br><b>bitte geben Sie Ihre Vorwahl ein</b>';unset($_POST['senden']);}
if (!$_POST['tel']) {echo '<br><b>bitte geben Sie Ihre Telefonnummer ein</b>';unset($_POST['senden']);}
while(list($feld, $inhalt) = @each($_POST['zeit'])) {
if(!$inhalt || $inhalt=="")
$zeit=$inhalt;
}{echo '<br><b>Bitte wählen Sie eine Uhrzeit aus';unset($_POST['senden']);} |
Dann in der Email steht bei Uhrzeit Array??
Danke für die Hilfe
|
|
| Nach oben |
|
 |
Metaman Power-Poster [User]


Anmeldung: 20.11.05 Beiträge: 635
|
Verfasst am: 20.04.2006, 11:07 Titel: |
|
|
ups...
mein Fehler,
da in der while schleife der Array zeit ausgelesen wird und der Wert dann in der Variable $zeit gespeichert wird???
also hier mal den namen der Varaible ändern
$zeit2=$inhalt;
wenn die Efolgsmeldung und die Fehlermeldung gezeigt wird, dann stimmt vielleicht etwas mit deinen Klammern nicht, obwohl ich da jetzt keinen Fehler direkt sehe
jedoch weiß ich auch nicht genau ob man die funktion mail() einfach so mit einer if schleife abfragen kann??? _________________
Webmaster Lexikon
Schnäppchensuche
Wenn Du einen Clan Sponsor suchst, schreibe mich NICHT an!!!
|
|
| Nach oben |
|
 |
oliwol Helfer [User]


Anmeldung: 15.12.05 Beiträge: 170 Wohnort: Berlin
|
Verfasst am: 20.04.2006, 11:21 Titel: RE... |
|
|
Hmmmm....
Also da ja beim select tag der name mit zeit[] angegeben wird
hab ich jetzt aber auch alle anderen $_Post angaben auf zeit[] geändert.
jetzt gibt er keine erfolgsmeldung mehr aus und die nachricht wird nicht verschickt.
so ist es ja richtig nur das formular müsste jetzt nur noch die daten aus dem select tag herausziehen (sind wir nicht wieder da wo wir angefangen haben? )
das formular sieht die auswahl von einer zeit einfach nicht als inhalt an
???
Zuletzt bearbeitet von oliwol am 20.04.2006, 12:02, insgesamt einmal bearbeitet
|
|
| Nach oben |
|
 |
Metaman Power-Poster [User]


Anmeldung: 20.11.05 Beiträge: 635
|
Verfasst am: 20.04.2006, 11:31 Titel: |
|
|
nein,
$_POST['zeit[]'] ist falsch...
richtig ist.
$_POST['zeit']
also
| Code: | while(list($feld, $inhalt) = @each($_POST['zeit'])) {
if(!$inhalt || $inhalt=="")
$zeit2=$inhalt;
} |
ansonsten mache hier zum Test an stelle der Zeile
$zeit2=$inhalt;
einfach eine echo ausgabe.
also echo "$inhalt"; _________________
Webmaster Lexikon
Schnäppchensuche
Wenn Du einen Clan Sponsor suchst, schreibe mich NICHT an!!!
|
|
| Nach oben |
|
 |
oliwol Helfer [User]


Anmeldung: 15.12.05 Beiträge: 170 Wohnort: Berlin
|
Verfasst am: 20.04.2006, 11:35 Titel: Fast |
|
|
So super es funzt
außer wenn das formular gesendet wird steht die fehlermeldung noch da
gibts ne lösung??
Danke nochmal
|
|
| Nach oben |
|
 |
Metaman Power-Poster [User]


Anmeldung: 20.11.05 Beiträge: 635
|
Verfasst am: 20.04.2006, 11:51 Titel: |
|
|
wüste ich jetzt nicht woran das liegt.
versuch mal eine @ vor dem Mail ??
also if(@mail(.... _________________
Webmaster Lexikon
Schnäppchensuche
Wenn Du einen Clan Sponsor suchst, schreibe mich NICHT an!!!
|
|
| Nach oben |
|
 |
oliwol Helfer [User]


Anmeldung: 15.12.05 Beiträge: 170 Wohnort: Berlin
|
Verfasst am: 20.04.2006, 11:55 Titel: RE... |
|
|
Klappt leider nich na egal auf jeden Fall super Hilfe ist ja nur noch ein kleines Problem werd ich schon irgendwie hinbekommen
falls du oder irgend jemanden was einfällt bitte posten
Vielen Dank
Grüße Oli
|
|
| Nach oben |
|
 |
Metaman Power-Poster [User]


Anmeldung: 20.11.05 Beiträge: 635
|
Verfasst am: 20.04.2006, 12:02 Titel: |
|
|
höchstens noch anders mit or die
also
| Code: | mail($.........)
or die("Die Mail konnte nicht versendet werden.");
OKMELDUNG |
nachteil bei der Sache, mit die wird das Script nach dem Anzeigen der Meldung beendet _________________
Webmaster Lexikon
Schnäppchensuche
Wenn Du einen Clan Sponsor suchst, schreibe mich NICHT an!!!
|
|
| Nach oben |
|
 |
oliwol Helfer [User]


Anmeldung: 15.12.05 Beiträge: 170 Wohnort: Berlin
|
Verfasst am: 20.04.2006, 12:04 Titel: RE... |
|
|
Habs hinbekommen musste
noch extra
die zeile angeben
| Code: | if (!$_POST['zeit']) {echo '<br><b>Bitte wählen Sie eine Uhrzeit aus';unset($_POST['senden']);}while(list($feld, $inhalt) = @each($_POST['zeit'])) {
if(!$inhalt || $inhalt=="")
$zeit2=$inhalt;
} |
super wär sonst so schnell nicht drauf gekommen
kann also geschlossen werden
Nochmals besten dank
Gruß Oli
|
|
| Nach oben |
|
 |
|
|