SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.03.2007, 16:22:29
M.Kreimer M.Kreimer ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 11
Formular mit Checkboxen übermitteln - Komme nicht weiter

Hallo Community,

ich habe mich gerade hier angemeldet, da ich momentan eine kleine Umfrage für unser Praktikum umsetzen soll.

Folgendes ist Stand der Dinge.

Es wird eine Befragung verlangt, wo es nur darum gilt, dass Checkboxen übermittelt werden.

Dies sieht z.B. so aus

Frage 1: Seit wieviel Jahren haben Sie Ihren Führerschein

[ ] 0 - 5 Jahre
[ ] 6 - 10 Jahre
[ ] 11 - 15 Jahre
[ ] 16 - 20 Jahre
usw.

Frage 2 (ist dann von der Art her gleich, nur halt andere Fragen

Jetzt habe ich ein Problem damit, die Checkboxen zu übermitteln. Wir haben vorher ein ganz normales kleines Mailformular erstellt, wo wir folgendes Script zur Verfügung gestellt bekommen haben

Zitat:
<?php
if($sentemail == "2"){
include("sorry.php");

}else{

$num = $sentmessage + 1;
setcookie("sentemail","$num",time()+600); //set the cookie

$email = "Name:\t$v1\nVorname:\t$vvname\n\nStrasse:\t$vstreet\nWohnort:\t$vort\ nTelefon:\t$vtelefon\nMobil:\t$vmobil\nTelefax:\t$vfax\nE-Mailadresse:\t$vmail / \n\n\nNachricht:\t$vmsg\n\nIP Adresse des Versenders:\t$REMOTE_ADDR\n\n";
$to = "meineemailadresse@domain.de";
$subject = "Kontakt durch Webseite";
$mailheaders = "From: $vmail <> \n";
$mailheaders .= "Reply-To: $vmail\n\n";
mail($to, $subject, $email, $mailheaders);
include("dankeecho.php");
}
?>
Bei dem Mailformular haben wir den Eingabefeldern immer einen Variablennamen geben müssen (z.B. vname, vort usw.)

Dieses Formular wollte ich jetzt zum Übermitteln der Checkboxen "missbrauen", aber das scheint nicht zu funktionieren :(

Die Checkboxen haben ich so angelegt

Zitat:
<input name="1" type="checkbox" id="1" tabindex="1" value="v1">
<input name="2" type="checkbox" id="2" tabindex="2" value="v2">
<input name="3" type="checkbox" id="3" tabindex="3" value="v3">
usw.
Dumm ist leider, dass es beim Projekt um die 150 Checkboxen gibt und ich gar nicht mehr weiter weiss.

Ich kann den Checkboxen ja so wie bei Eingabefeldern keinen Variablennamen geben, oder?

Kann mir da jemand helfen, wie ich das Script oben richtig umbaue, damit die Checkboxen auch übermittelt werden? Ich bin blutiger Anfänger :(

Gruß
Marko

Geändert von M.Kreimer (09.03.2007 um 16:29:47 Uhr)
Mit Zitat antworten
  #2  
Alt 09.03.2007, 18:18:07
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Namen und Id`s sollten eigentlich nicht nur aus Zahlen bestehen und mit einem Buchstaben beginnen. Genauso verhält es sich bei Variablenbezeichnungen.
Du kannst dir viel Schreibarbeit ersparen, wenn du die Checkboxen einer Frage als Array definierst.
HTML-Code:
<input name="check1[]" type="checkbox" id="check1" tabindex="1" value="v1">
<input name="check1[]" type="checkbox" id="check2" tabindex="2" value="v2">
<input name="check1[]" type="checkbox" id="check3" tabindex="3" value="v3">
Übermittelt werden nur die Checkboxen die aktiviert wurden. In dem Beispiel enthält das übermittelte Array $check1 alle Werte der aktivierten Checkboxen.
Auslesen kannst du sie so.
PHP-Code:
if(isset($_POST['check1'])) $check1 $_POST['check1']; 
__________________
Grüße Andes

Geändert von Andes (09.03.2007 um 18:19:52 Uhr)
Mit Zitat antworten
  #3  
Alt 09.03.2007, 18:21:22
M.Kreimer M.Kreimer ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 11
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Hi Andes,

erstmal vielen Dank für deine Info.

Verstanden habe ich das bis jetzt noch nicht so, aber ich versuche es zumindest.

Wie verhält sich das denn nun mit meinem Mailscript? Dort muss ich doch dann auch irgendwie die Sache auch übermitteln!?

Edit: Ah, dann brauche ich das nur irgendwo in meinem Mailscript platzieren?

Ich habe das jetzt so verstanden:

Für Frage 1 mache ich bei input name = check1[]
Für Frage 2 dann bei input name = check2[]
usw.

Habe ich das richtit verstanden? Oder kann ich es bei check1[] belassen und es werden trotzdem alle übermittelt, egal wieviele Fragen ich habe?

Entschuldigt bitte mein Unwissen, aber ich bin sozusagen Quereinsteiger und erst seit ein paar Tagen damit zugange.

Geändert von M.Kreimer (09.03.2007 um 18:31:16 Uhr)
Mit Zitat antworten
  #4  
Alt 09.03.2007, 19:44:56
Heinrich Heinrich ist offline
Member
 
Registriert seit: Feb 2006
Beiträge: 883
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Nein, du musst schon für jede Frage eigene Inputfelder definieren. Wie Andes sagte sollten die keine Zahlen, sondern Bezeichnungen als Name haben. Z.B. für "Wie lange Führerschein":
PHP-Code:
<form action="ziel.php" method="post">
<
input name="fs_dauer" type="checkbox" id="fs_dauer1" tabindex="1" value="0-5">
<
input name="fs_dauer" type="checkbox" id="fs_dauer2" tabindex="2" value="6-10">
//usw.
<input type="submit" value="Abschicken">
</
form
In der zieldatei.php liest du die Werte so aus:
PHP-Code:
if(isset($_POST['fs_dauer'])) $fs_dauer $_POST['fs_dauer']; 
Die Variable $fs_dauer kannst du dann in den Text deines Mailscripts einbauen.

Als Array (name="fs_dauer[]") brauchst du die Checkboxen nur zu definieren, wenn Mehrfachantworten gegeben werden. Das solltest du übrigens bei der Beispielfrage ausschließen, indem du Radioboxen (input type="radio") statt Checkboxen verwendest.

Bei Checkboxen und Mehrfachantworten musst du das Array dann in der Zieldatei mit einer Schleife (for oder foreach) auslesen. Aber dazu vielleicht, wenn du mit dem ersten Kram fertig bist.

P.S. Wozu du die id und tabindex brauchst, weiß ich nicht...
Mit Zitat antworten
  #5  
Alt 09.03.2007, 19:56:27
M.Kreimer M.Kreimer ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 11
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Hallo Heinrich,

auch bei dir möchte ich mich für deine Hilfestellung erstmal recht herzlich bedanken.

Ich muss zugeben, dass es unheimlich schwer für jemanden wie mich ist, wenn man erst seit 2-3 Tagen damit konfrontiert wird. Da fallen Begriffe wie for oder foreach, damit kann ich noch überhaupt nichts anfangen :-)

Das tabindex wurde uns so erklärt, dass man mittels Tabulator dann in der Reihenfolgen die Checkboxen anwählen kann, wenn man z.B. lieber mit der Tastatur, anstatt der Mouse navigiert. Die IDs wurden uns so eigentlich nicht genauer erklärt.

Ich habe allerdings immer noch Probleme damit, wo ich diese "if(isset($_POST['fs_dauer'])) $fs_dauer = $_POST['fs_dauer'];"
einbauen muss.

Kann ich das ohne Weiteres in mein obiges Mailscript einbauen? Die Zeile $email usw. brauche ich ja normalerweise in meinem Fall nicht, da keine Eingabe von Name, Vorname, Straße usw. möglich ist. Die Umfrage erscheint sofort und ohne Textfelder. Es sind nur Checkboxen vorhanden, und diese sind auch vorgegeben.

Nur mal zum Verständnis:

Kann ich in meinem oben geposteten Mailscript so vorgehen?

$fs_dauer = if(isset($_POST['fs_dauer'])) $fs_dauer = $_POST['fs_dauer'];
$automarke if(isset($_POST['automarke'])) $automarke = $_POST['automarke'];
$lieblingsfarbe = if(isset($_POST['lieblingsfarbe'])) $lieblingsfarbe = $_POST['lieblingsfarbe'];

Kann ich das so einfach in mein vorhandenes Script irgendwo platzieren? Und Mehrfachantworten sind teilweise auch dabei, wo in der Vorgabe auch drinsteht, dass Mehrfachantworten möglich sein sollen.

Ich glaube ich bin einfach zu blöd für diese Arbeit :(
Mit Zitat antworten
  #6  
Alt 09.03.2007, 20:10:57
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Zitat:
Zitat von M.Kreimer Beitrag anzeigen
Ah, dann brauche ich das nur irgendwo in meinem Mailscript platzieren?

Ich habe das jetzt so verstanden:

Für Frage 1 mache ich bei input name = check1[]
Für Frage 2 dann bei input name = check2[]
usw.

Habe ich das richtit verstanden?
Richtig! Wie sie benannt werden ist aber deine Sache.
Zitat:
Zitat von M.Kreimer Beitrag anzeigen
Oder kann ich es bei check1[] belassen und es werden trotzdem alle übermittelt, egal wieviele Fragen ich habe?
Vom Prinzip schon, bloß machst du es dir beim Auslesen und zuordnen zu den Fragen unütz schwer.

Um jetzt die Antworten in deinen E-Mail Text einzufügen, kannst du folgendes tun.
PHP-Code:
$email "Dein Text .....";
if(isset(
$_POST['check1'])) $email .= implode("\n"$_POST['check1']); 
//dies fügt das Array zu einem Striing zusammen und erzeugt nach jeder Antwort einen Zeilenumbruch 
Wie Heinrich schon schrieb, wäre es bei deiner Beispielfrage nicht sinnvoll mehrfach Antworten zu zulassen.
Da kommst du besser diese als Radio-Button zu definieren.
HTML-Code:
<input type="radio" name="fs" value="0-5 Jahre">0-5 Jahre
<input type="radio" name="fs" value="6-10 Jahre">6-10 Jahre
u.s.w.
Bei Radio-Button ist nur eine Antwort möglich und dessen Wert wird als String übermittelt.
PHP-Code:
$email "Dein Text ...";
if(isset(
$_POST['fs'])) $email .= $_POST['fs']; 
Mach dir doch für das bessere Verständnis erst einmal ein kleines Formular mit Checkboxen und Radio-Button und übermittle diese an ein PHP-Script. Welches diese Daten ausliest.
In dem PHP-Script brauchst du ja erst mal nichts weiter zu tun als die Variablen auszulesen und auszugeben. Hilfreich kann dir var_dump() sein, damit du siehst wie die Variablen aufgebaut sind und von welchen Type sie sind.
PHP-Code:
var_dump($_POST);
//oder
var_dump($_POST['fs']);
//oder
var_dump($_POST['check1']); 
__________________
Grüße Andes
Mit Zitat antworten
  #7  
Alt 09.03.2007, 20:19:11
M.Kreimer M.Kreimer ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 11
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Ok Leute, ich versuche das übers Wochenende mal irgendwie auf die Reihe zu bekommen.

Es ist halt - wie gesagt - unheimlich schwer das alles so schnell und auf einmal irgendwie unterzubekommen, wenn man vorher PHP noch nicht mal im normalen Sprachgebrauch kannte ;-)

Ich werde jetzt mal so vorgehen. Ich baue mir selber ein ganz anderes Formular auf mit einer einzigen Frage. Diese versuche ich dann mal zu übermitteln. Sollte das gehen, so denke ich, dass eine Erweiterung dann auch nicht mehr ganz sooo schwer ist.

Übrigens: Das mit dem var_dump habe ich überhaupt nicht verstanden und dies ist komplettes Neuland :)
Mit Zitat antworten
  #8  
Alt 09.03.2007, 20:27:47
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Vielleicht verstehst du ja dies besser.^^
var_dump()
__________________
Grüße Andes
Mit Zitat antworten
  #9  
Alt 09.03.2007, 23:00:04
Heinrich Heinrich ist offline
Member
 
Registriert seit: Feb 2006
Beiträge: 883
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Genau! Versuch das mal Stück für Stück und lass dir immer das Ergebnis ausgeben.

Übrigens: Als ich angefangen habe, hat mir das Buch "PHP for Dummies" (keine Verarsche) ziemlich geholfen.
Mit Zitat antworten
  #10  
Alt 10.03.2007, 11:12:02
M.Kreimer M.Kreimer ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 11
AW: Formular mit Checkboxen übermitteln - Komme nicht weiter

Hi Leute,

ich habe es jetzt fast die ganze Nacht versucht, aber leider keinen Erfolg erzielen können.
Ich bekomme wohl eine eMail, aber dort steht einfach nichts drin.

Habe mir versucht eine Datei anzulegen, wo ich einmal mit Radiobuttons und einmal mit Checkboxen arbeiten (Checkboxen mit Mehrfachnennungen sind im Projekt enthalten und werden auch verlangt)

So sieht meine Test HTML-Seite aus

HTML-Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Praktikum</title>
</head>

<body>
<table width="500" height="338" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td align="left" valign="top"><form id="form1" name="form1" method="post" action="submit.php">
      <p>Frage 1: Wie alt sind Sie?</p>
      <p>
        <label>
        <input type="radio" name="alter" value="20 - 25 Jahre" tabindex="1" />
        </label> 
        20-25 Jahre<br />
        <label>
        <input type="radio" name="alter" value="26 - 30 Jahre" tabindex="2" />
        </label> 
        26-30 Jahre<br />
        <label>
        <input type="radio" name="alter" value="31 - 35 Jahre" tabindex="3" />
        </label> 
        31 - 35 Jahre</p>
      <p>Was sind Ihre Lieblingsfarben?</p>
      <p>
        <label>
        <input type="checkbox" name="farbe" value="Gruen" tabindex="4" />
        </label> 
         Gruen<br />
         <label>
         <input type="checkbox" name="farbe" value="Blau" tabindex="5" />
         </label> 
         Blau<br />
         <label>
         <input type="checkbox" name="farbe" value="Gelb" tabindex="6" />
         </label> 
         Gelb<br />
         <label>
         <input type="checkbox" name="farbe" value="Schwarz" tabindex="7" />
         </label> 
         Schwarz</p>
      <p>
        <label>
        <input type="submit" name="Submit" value="Senden" />
        </label>
      </p>
    </form>
    </td>
  </tr>
</table>
</body>
</html>
Die submit.php sieht so aus

PHP-Code:
<?php 
if($sentemail == "2"){ 
include(
"sorry.php"); 

}else{ 

$num $sentmessage 1
setcookie("sentemail","$num",time()+600); //set the cookie 

$email "Das ist ein Test";
if(isset(
$_POST['alter'])) $email .= $_POST['alter'];
if(isset(
$_POST['farbe'])) $email .= implode("\n"$_POST['farbe']);  
//dies fügt das Array zu einem Striing zusammen und erzeugt nach jeder Antwort einen Zeilenumbruch 
$to "xyz@xyz.de"
$subject "Testprojekt"
$mailheaders "From: $vmail <> \n"
$mailheaders .= "Reply-To: $vmail\n\n"
mail($to$subject$mailheaders); 
include(
"dankeecho.php"); 

?>
Die dankeecho.php ist nur eine weisse Seite wo steht: Hat funktioniert.

So, wenn ich das jetzt so mache, dann erhalte ich folgende Fehlermeldung:

Warning: implode() [function.implode]: Bad arguments. in /www/htdocs/v269981/test/submit.php on line 12

Nehme ich die line12 komplett aus dem Script raus, dann wirft er mir zwar keine Fehlermeldung raus und gibt auch die dankeecho dann aus, allerdings sind die eMails nur leer und es ist nichts enthalten :-(

Das Dummie Buch habe ich mir heute früh schon bei Amazon bestellt. Ich will das unbedingt irgendwie lernen
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Inhalte übermitteln (Formular) timeless PHP Grundlagen 1 01.09.2006 23:44:36
Probleme mit Checkboxen in Formular Hetfield PHP Grundlagen 4 11.08.2004 00:24:29
Auslesen von Formulardaten bez. vorher gleichnamiger Checkboxen phpLaie PHP Grundlagen 5 25.03.2004 19:23:05
HTML Formular in PHP umwandeln mikeingo PHP für Fortgeschrittene und Experten 3 03.11.2002 11:09:20
update formular problem Silencer PHP für Fortgeschrittene und Experten 1 14.10.2002 09:29:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:52:09 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt