Neuigkeiten:

still alive...

Hauptmenü

Kontaktformular - Probleme

Begonnen von zuhi, 04. April 2007, 21:15:09

Vorheriges Thema - Nächstes Thema

zuhi

Hallöchen,
Dies ist mein erster Thread in diesem Forum und ich begrüsse alle Mitglieder ganz herzlich.
Ich habe ein Problem mit einem Kontaktformular welches ich auf einer Seite einbinden soll.
Und zwar sollen ausser den normalen Angaben wie Name, Email etc auch einige Mehrfachabfragen stattfinden.
Das Formular ist auch soweit in Ordnung und funktioniert auch, bis auf eben diese Mehrfachabfragen.
Z.Zt. kann man dieses Formular hier anschauen: http://www.yannik-brunner.de\" rel=\"external nofollow\">Kontaktformular
Beim Abschicken des Formulars werden alle Daten richtig übertragen, nur die Inhalte der Checkboxen nicht. Ich kann mir leider keinen Reim darauf machen, da ich des php nicht gerade übermachtig bin. Hier mal ein paar codeschnipsel aus den entsprechenden Bereichen. (bitte Bescheid sagen wenn die ganzen Files gepostet werden müssten)


                 
                   Objektausstattung
 
                   Extras
 
                   PoolWhirpoolEingezäuntKamin
 
                    
 
                   24
                   Std. ServiceVoll
                   ausgestatte Küche

 
 
und in der action.php steht dann:

$Distanz_maritim_Gebiet=$_POST[\\\'Distanz_maritim_Gebiet\\\'];
$Objekt_Extras=$_POST[\\\'Objekt_Extras\\\'];
$Lage_Objekt=$_POST[\\\'Lage_Objekt\\\'];
$Bodenbelag=$_POST[\\\'Bodenbelag\\\'];
$Zimmer=$_POST[\\\'Zimmer\\\'];
$Allgemeine_Ausstattung=$_POST[\\\'Allgemeine_Ausstattung\\\'];
$Technische_Ausstattung=$_POST[\\\'Technische_Ausstattung\\\'];
$Ausblicke[]=$_POST[\\\'Ausblicke[]\\\'];
$Infrastruktur=$_POST[\\\'Infrastruktur\\\'];
$oeffentliche=$_POST[\\\'oeffentliche\\\'];
$Objekt_Beschreibung=$_POST[\\\'Objekt_Beschreibung\\\'];
$nachricht=$_POST[\\\'nachricht\\\'];
...............................
und
\\\"Distanz_Nationalpark\\\".$Distanz_Nationalpark.\\\"\\\\n\\\".
\\\"Distanz_maritim_Gebiet\\\".$Distanz_maritim_Gebiet.\\\"\\\\n\\\".
\\\"Objekt_Extras\\\".$_Objekt_Extras.\\\"\\\\n\\\".
\\\"Lage_Objekt\\\".$Lage_Objekt.\\\"\\\\n\\\".
\\\"Bodenbelag\\\".$Bodenbelag.\\\"\\\\n\\\".
\\\"Zimmer\\\".$Zimmer.\\\"\\\\n\\\".
\\\"Allgemeine_Ausstattung\\\".$Allgemeine_Ausstattung.\\\"\\\\n\\\".
\\\"Technische_Ausstattung\\\".$Technische_Ausstattung.\\\"\\\\n\\\".
\\\"Ausblicke\\\".$Ausblicke.\\\"\\\\n\\\".
\\\"Infrastruktur\\\".$Infrastruktur.\\\"\\\\n\\\".
\\\"oeffentlich\\\".$oeffentliche.\\\"\\\\n\\\".
\\\"Objekt_Beschreibung\\\".$Objekt_Beschreibung.\\\"\\\\n\\\".
\\\"Nachricht:\\\\n\\\".$nachricht.\\\"\\\\n\\\\n\\\".
\\\"Dateianhang: \\\".$datei_info.\\\"\\\\n\\\".
$report;

 
 
Vielleicht kann ja hier ein Experte erkennen warum die daten aus den checkboxen nicht mit übertragen werden. Das wäre sehr nett.  (Ich würde mich über php-Anfängergerechte Antworten sehr freuen) /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />
Vielen Dank
Zuhi

jogibär

Ich sehe nicht, wo du die Checkboxen überhaupt überprüfst. Dir ist aber klar, dass Checkbox-Values nur übertragen werden, wenn sie auch angeklickt wurden?
Gruß
Jogi

zuhi

Hallöchen
ja, dass man die checkboxen anklicken muss damit sie übertragen werden ist mir klar. Das einzige was ich geschafft habe ist, dass wenn ich von 6 checkboxen 3 anklicke, immer nur die letzte in der benachrichtigungs-email angezeigt wird. Aber es sollen ja alle angeklickten übertragen werden.
Habe nun, wie auch Du jetzt schreibst, einen Tip bekommen, dass ich die checkboxen ja noch überprüfen muss.
mit

$var = (isset($_POST[\"checkbox\"])) ? \"checked\" : \"unchecked\";

 
 
oder

if(isset($_POST[\\\'Pool\\\']))

 
 
soll es wohl klappen. Nur kann ich als absoluter Anfänger, diese codeschnipsel leider nicht richtig einbauen, da ich sie nicht wirklich verstehe  /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
Hat vielleicht jemand einen Tip dazu?
Gruss
Zuhi

k00ni

Hallo,
 

$var = (isset($_POST[\\\"checkbox\\\"])) ? \\\"checked\\\" : \\\"unchecked\\\"; 

 
 
diese Schreibweise ist für Anfänger gänzlich ungeeignet und dies nur zum kompakten Skripting geeignet. In dem Codeschnipsel ist eine If-Else Anweisung zu sehen, welche folgendes tut: Wenn $_POST[\\\'checkbox\\\'] gefühlt bzw. gesetzt ist, dann ist $var = \\\"checked\\\", wenn nicht, dann ist $var = \\\"unchecked\\\".
Äquivalent wäre auch folgender Code
 


Zu deinem eigentlich Problem. Werden Checkboxen nicht ohne ein Value geschrieben? Denn sie können ja nur \"checked\" oder \"unchecked\" sein!? Als im folgenden Codeschnispsel ohne das values = ...


 
 
Zudem hast du der Checkbox ja einen Namen gegeben. Diesen kannst du auch einfach abfragen nachdem das Formular gesendet wurde. Und zwar, je nach Sendmethode (POST,GET), per $_GET [\'Pool\'] oder $_POST [\'Pool\']; letzteres steht bereits oben. In manchen Fällen musst du über $_REQUEST gehen, war bei mir gestern jedenfalls so. Da würde sich dann in der Verwendung im Vergleich zu PST oder GET nichts unterscheiden.
 
Grüße

zuhi

Dankeschön,
da mach ich mich gleich mal dran. (ich frage mich übrigens, warum meine code-schnipsel so viele backslashes haben. Die sind im Original nicht da)
Ich melde mich wieder, obs geklappt hat.
 
Gruss
Zuhi

otti_mania

die Backslashes sollen Leerzeichen verdeutlichen!

Gruß Otti




#########WICHTIG###########


if (IQ > Raum - °C) echo $post


   else exit ();


##########################




http://www.ottimania.de\" rel=\"external nofollow\">http://www.ottimania.de/banner1.gif\" alt=\"banner1.gif\">



Original von otti_mania die Backslashes sollen Leerzeichen verdeutlichen!
[/quote]
Nein, daran liegt es nicht.

zuhi

So, nun habe ich wieder ne Weile rumprobiert, aber entweder bin ich einfach zu alt oder zu doof, oder irgendwo gibt es noch einen Haken den ich nicht verstehe.
Nun funktioniert ja so ein Kontaktformular bei anderen Leuten auch, so dass ich irgendwie die Hoffnung nicht verliere, dass ich es irgendwie schaffe.
Um nochmal das Ziel meiner Bemühungen klarzustellen: Nach ausfüllen des Formulares soll ich eine Mail bekommen in der dann hinter den jeweiligen Abfragen die Eingabe des Ausfüllenden steht. Die klappt bei allen \"normalen Abfragen\" super.
Und hinter den checkboxabfragen soll dann der jeweilige inhalt stehen (siehe code)
 


Telefon 235678
Strasse Fluchtweg 23
Objekt_Extras Pool whirlpool Massagesalon
Lage_Objekt
Bodenbelag Teppichboden Fliesenboden Marmor
Zimmer 12

 
 
Jetzt habe ich es mit den Vorschlägen von K00ni probiert, erhalte aber immer noch nicht das gewünschte Ergebnis. Mal steht nur die Bezeichnung der letzten checkbox hinter der Abfrage, mal ein checked oder unchecked, oder auch nichts. Egal wie ich herumbastel, ich kriegs einfach nicht hin.
Ist vielleicht jemand hier, der für wirklich ganz Doofe wie mich ein kleines Beispiel posten könnte. 2checkboxen mit passender Abfrage dazu? Ich würd mich wirklich wahnsinnig freuen, damit ichs endlich verstehe.
Vielen Dank und Grüße
Zuhi

otti_mania


Original von A7

Original von otti_mania die Backslashes sollen Leerzeichen verdeutlichen!
[/quote]
Nein, daran liegt es nicht.
[/quote]
sehr geil mal wieder dein Beitrag!
1. habe ich nur auf seine Frage geantwortet!
2. Wenn du weisst woran es liegt warum sagste es nicht - und hörst mal endlich auf zu spammen!
3. Wer lesen kann ist klar im Vorteil /uploads/emoticons/icon_e_wink.gif.fcb053ab2c91cb6224c03a16c6332abf.gif\" alt=\";)\" />

Gruß Otti




#########WICHTIG###########


if (IQ > Raum - °C) echo $post


   else exit ();


##########################




http://www.ottimania.de\" rel=\"external nofollow\">http://www.ottimania.de/banner1.gif\" alt=\"banner1.gif\">


[OT]wer die Suche benutzen kann und liest was er findet, der braucht nicht falsche Antworten posten um des Postens willen.[/OT]

http://de.selfhtml.org/html/formulare/auswahl.htm#checkboxen\" rel=\"external nofollow\">Guggst du mal hier  /uploads/emoticons/icon_e_wink.gif.c059000ae48ff64afa53be0962c021f2.gif\" alt=\":wink:\" />

otti_mania


Original von A7 [OT]wer die Suche benutzen kann und liest was er findet, der braucht nicht falsche Antworten posten um des Postens willen.[/OT]
[/quote]
Du raffst echt garnix oder kerl?
guckst du in seine Frage dann du sehen was er hat gefragt vor meine antwort!
er hat doch gefragt warum die Backslashes da sind und bei ihm im Script nicht!
man, ich kann mich den ganzen tag nur über dich mit deinen 5 Acounts hier bei Powie aufregen!
Tu doch uns allen einen gefallen:
HÖR BITTE AUF ZU SPAMMEN UND UNSINNIGE BEITRÄGE ZU SCHREIBEN!!!!!
wenn dann was konstruktives was hilft.
BITTE

Gruß Otti




#########WICHTIG###########


if (IQ > Raum - °C) echo $post


   else exit ();


##########################




http://www.ottimania.de\" rel=\"external nofollow\">http://www.ottimania.de/banner1.gif\" alt=\"banner1.gif\">


Liest dich wohl gerne? Und hör auf zu schreien! :R:

zuhi

huhu  /uploads/emoticons/icon_e_wink.gif.c059000ae48ff64afa53be0962c021f2.gif\" alt=\":wink:\" />

zuhi

Ok, A7, du möchtest also das ich nochmal ganz von vorne anfange  /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />
Natürlich kenn ich die selfhtml seiten, die auch wirklich sehr hilfreich waren in den letzen Jahren.
Ich habe deinen \"wink mit dem Zaunpfahl\" befolgt und nochmal bei Null angefangen.
Das sieht jetzt so aus:
 


                    Bodenbelag
 
                   TeppichbodenLaminatHolzbodenGranit

 
 
und in der Abfrage dann:
 

$Bodenbelag=$_POST[\\\'Bodenbelag\\\'];
.
.
.
.und weiter unten dann:
#--- Checkboxen
if (isset($_POST[\\\'checkbox\\\']))
{
$var = \\\'checked\\\';
}
else
{
$var = \\\'unchecked\\\';
}

 
 
Ausgegeben in der Email wird dann:
 

Objekt_Extras
Lage_Objekt
BodenbelagLaminat
Zimmer
Allgemeine_Ausstattung

 
 
Obwohl ich Teppichboden und Laminat angeklickt habe.
Wie gehts nun weiter? Es ist egal wie ichs mache, so  richtig wie ich das möchte klappt das nicht. Hast du noch einen Rat?
Gruss
Zuhi

all your base are belong to us / Discord