Login  Regeln Aktuelles Datum und Uhrzeit: 09.01.2009, 10:30  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Formular soll Daten aus Select-Tag ziehen

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Serverseitige Websprachen
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
oliwol
Helfer [User]
Helfer



Anmeldung: 15.12.05
Beiträge: 181
Wohnort: Berlin

BeitragVerfasst am: 20.04.2006, 10:15    Titel: Formular soll Daten aus Select-Tag ziehen Antworten mit Zitat

Hallo erstmal..... Winken

Also hab ein Formular (Rückruf - Formular) mit PHP erstellt, und soweit funktioniert auch alles....
außer: Lachen :...
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
Private Nachricht senden E-Mail senden MSN Messenger
Metaman
Power-Poster [User]
Power-Poster



Anmeldung: 20.11.05
Beiträge: 636

BeitragVerfasst am: 20.04.2006, 10:31    Titel: Antworten mit Zitat

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
Private Nachricht senden Website dieses Benutzers besuchen
oliwol
Helfer [User]
Helfer



Anmeldung: 15.12.05
Beiträge: 181
Wohnort: Berlin

BeitragVerfasst am: 20.04.2006, 10:49    Titel: RE... Antworten mit Zitat

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 Sehr glücklich )
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
Private Nachricht senden E-Mail senden MSN Messenger
Metaman
Power-Poster [User]
Power-Poster



Anmeldung: 20.11.05
Beiträge: 636

BeitragVerfasst am: 20.04.2006, 11:07    Titel: Antworten mit Zitat

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
Private Nachricht senden Website dieses Benutzers besuchen
oliwol
Helfer [User]
Helfer



Anmeldung: 15.12.05
Beiträge: 181
Wohnort: Berlin

BeitragVerfasst am: 20.04.2006, 11:21    Titel: RE... Antworten mit Zitat

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? Mit den Augen rollen )
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
Private Nachricht senden E-Mail senden MSN Messenger
Metaman
Power-Poster [User]
Power-Poster



Anmeldung: 20.11.05
Beiträge: 636

BeitragVerfasst am: 20.04.2006, 11:31    Titel: Antworten mit Zitat

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
Private Nachricht senden Website dieses Benutzers besuchen
oliwol
Helfer [User]
Helfer



Anmeldung: 15.12.05
Beiträge: 181
Wohnort: Berlin

BeitragVerfasst am: 20.04.2006, 11:35    Titel: Fast Antworten mit Zitat

So super es funzt
Sehr glücklich
außer wenn das formular gesendet wird steht die fehlermeldung noch da
gibts ne lösung??
Danke nochmal


Nach oben
Private Nachricht senden E-Mail senden MSN Messenger
Metaman
Power-Poster [User]
Power-Poster



Anmeldung: 20.11.05
Beiträge: 636

BeitragVerfasst am: 20.04.2006, 11:51    Titel: Antworten mit Zitat

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
Private Nachricht senden Website dieses Benutzers besuchen
oliwol
Helfer [User]
Helfer



Anmeldung: 15.12.05
Beiträge: 181
Wohnort: Berlin

BeitragVerfasst am: 20.04.2006, 11:55    Titel: RE... Antworten mit Zitat

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
Private Nachricht senden E-Mail senden MSN Messenger
Metaman
Power-Poster [User]
Power-Poster



Anmeldung: 20.11.05
Beiträge: 636

BeitragVerfasst am: 20.04.2006, 12:02    Titel: Antworten mit Zitat

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
Private Nachricht senden Website dieses Benutzers besuchen
oliwol
Helfer [User]
Helfer



Anmeldung: 15.12.05
Beiträge: 181
Wohnort: Berlin

BeitragVerfasst am: 20.04.2006, 12:04    Titel: RE... Antworten mit Zitat

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
Private Nachricht senden E-Mail senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge In einer bestimmten Id mehrere Daten ... nicogames Serverseitige Websprachen 0 01.01.2009, 15:00 Letzten Beitrag anzeigen
Keine neuen Beiträge SQL Daten anzeigen einer bestimmten id nicogames Serverseitige Websprachen 2 16.12.2008, 16:17 Letzten Beitrag anzeigen
Keine neuen Beiträge Formular kahart Einsteigerforum 5 16.10.2008, 11:58 Letzten Beitrag anzeigen
Keine neuen Beiträge Daten in MySql Datenbank über PHP änd... xxcool25xx Serverseitige Websprachen 5 08.09.2008, 06:10 Letzten Beitrag anzeigen
Keine neuen Beiträge Problem mit Daten in die Datenbank hi... xxcool25xx Serverseitige Websprachen 16 29.08.2008, 12:42 Letzten Beitrag anzeigen
Threadübersicht