php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.06.2008, 13:12  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Checkboxen mit gleichem Name -> Value ausgeben

Hallo!
Ich habe bei einem Formular mehrere Checkboxen mit gleichem Name die dann ausgegeben werden sollen. Also nur die Boxen die angeklickt sind.

Habe mittlerweile rausgefunden, dass man bei dem name [] diese Klammern machen muss... aber bei Ausgabe kommt bei mir nur Array... wie macht man das?

Code:
<label><input type="checkbox" name="tarifmerkmale[]" id="hauseigentümer" value="hauseigentümer" />Hauseigent&uuml;mer</label><br />
<label><input type="checkbox" name="tarifmerkmale[]" id="einzelfahrer" value="einzelfahrer" />Einzelfahrer</label>
das ist das Html und ausgegeben wird es per Header (sollte es zumindest):
PHP-Code:
$Header .= "Tarifmerkmale: ".$tarifmerkmale."\n"
Wie schreib ich das nun im Header, dass mir das ausgegeben wird?

Hoffe ihr könnt mir helfen!

LG Denise
pixelprinzessin ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.06.2008, 13:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Je nach Form method mußt Du Dir mal das GET oder POST Array ausgeben lassen. Dann wird Dir klar, wie die Daten im Request auftauchen:
Nämlich als Array, etwa so:
Code:
$_POST => array (
'tarifmerkmale' => array (
  0 => 'Eintrag 1' ,
  1 => 'Eintrag 2' )
'...'
)
etc.

Dementsprechend kannst Du die Elemente per Schleife durchlaufen, bspw. mit foreach ($_POST['tarifmerkmale'] as Eintrag) und die Daten aufsummieren.
Nicht angekreuzte Elemente tauchen gar nicht erst auf.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (24.06.2008 um 13:25 Uhr).
nikosch ist gerade online  
Alt 24.06.2008, 13:24  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Hi,

die checkboxen werden durchnummert und so kannst du z.B. mir $_GET['tarifmerkmale'][0] auf das erste angeklickte Element zugreifen. Das ganze kannst du auch mit einer foreach-schleife durchlaufen, mehr dazu findest du im Manual.

Gruß
Cy

EDIT: Verdammt da war wieder einer schneller
cycap ist offline  
Alt 24.06.2008, 13:27  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard

aha, und das schreib ich mit in meinen php code wenn ich das richtig verstehe... aber wie lasse ich das dann im Header ausgeben? Also das was ich dann per E-Mail empfange?

LG Denise
pixelprinzessin ist offline  
Alt 24.06.2008, 13:33  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von pixelprinzessin Beitrag anzeigen
aha, und das schreib ich mit in meinen php code wenn ich das richtig verstehe... aber wie lasse ich das dann im Header ausgeben? Also das was ich dann per E-Mail empfange?

LG Denise
Haben wir eigentlich schon gesagt:

PHP-Code:
foreach($_POST['tarifmerkmale'] as $value)
{
  echo 
$value// bzw. das reinschreiben in die Mail

Das wars schon
cycap ist offline  
Alt 24.06.2008, 13:37  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard

mhmm.... aber das passt nicht zu meinen anderen Sachen

also hier ist mein php von dem Formular:

PHP-Code:
 <?php

$Empfaenger 
"....";
$ip getenv ("REMOTE_ADDR");

function 
checkEmail$email )
            {
               
$nonascii      "\x80-\xff";    
            
$nqtext        "[^\\\\$nonascii\015\012\"]";
            
$qchar         "\\\\[^$nonascii]";
            
$normuser      '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
            
$quotedstring  "\"(?:$nqtext|$qchar)+\"";
            
$user_part     "(?:$normuser|$quotedstring)";
            
$dom_mainpart  '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
            
$dom_subpart   '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
            
$dom_tldpart   '[a-zA-Z]{2,5}';
            
$domain_part   "$dom_subpart$dom_mainpart$dom_tldpart";
            
$pattern       "$user_part\@$domain_part";
    
            if (!
preg_match"/^$pattern$/"$email ))
            {
            return 
FALSE;
            }
            else
            {
            return 
TRUE;
            }
            }

if(
$_REQUEST['senden'])
{    
    if (
$_POST['email_address'] !== '') {
    exit(
'<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
    }
  else {    
    
$fehler = array();
    if(empty(
$_REQUEST['name']))
            {
        
$fehler['name'] = "Bitte geben Sie Ihren Namen an!";
            }
    if(!
checkEmail($_REQUEST['email']))
            {
            
$fehler['email'] = "Bitte geben Sie eine gültige E-Mail Adresse an!";
            }
    if(
count($fehler)>0){
            foreach (
$fehler as $msg){ 
            echo 
"<p align=\"center\">$msg";
            }
            echo 
"<br /><br /><b><a href=\"javascript:history.back();\">zurück</a></b></p>";
            }
    else
     {
        
$Mailbetreff "betreff";

        
$Trenner md5(uniqid(time()));

        
$Header "From: ".$_REQUEST['email']; 
        
$Header .= "\n"
        
$Header .= "MIME-Version: 1.0"
        
$Header .= "\n"
        
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner"
        
$Header .= "\n\n"
        
$Header .= "This is a multi-part message in MIME format"
        
$Header .= "\n"
        
$Header .= "--$Trenner"
        
$Header .= "\n"
        
$Header .= "Content-Type: text/plain"
        
$Header .= "\n"
        
$Header .= "Content-Transfer-Encoding: 8bit"
        
$Header .= "\n\n"
        
$Header .= "Sie haben folgende Nachricht erhalten: \n\n";
            if(
$Formularfeld!="senden" && $Formularfeld!="Anhang")
            {
                
$Header .= "Name: ".$name."\n";
                
$Header .= "Straße: ".$strasse."\n";
                
$Header .= "Hausnummer: ".$hausnummer."\n";
                
$Header .= "PLZ Ort: ".$plzort."\n";
                
$Header .= "Geschlecht: ".$geschlecht."\n";
                
$Header .= "Beruf: ".$beruf."\n";
                
$Header .= "öffentlicher Dienst: ".$oefdienst."\n";
                
$Header .= "Telefon: ".$telefon."\n";
                
$Header .= "E-Mail: ".$email."\n";
                
$Header .= "Tarifmerkmale: ".$tarifmerkmale."\n";
                
$Header .= "Bemerkung: ".$bemerkung."\n";
                
$Header .= "\n";
                
$Header .= "\n";
                
$Header .= "IP: ".$ip."\n";
            }
        
$Header .= "\nDatum/Zeit: ";
        
$Header .= date("d.m.Y H:i:s");
        
        
mail($Empfaenger$Mailbetreff""$Header); 
        echo
"<p align=\"center\">Vielen Dank!<br />Wir werden uns umgehend bei Ihnen melden!<br /><br /><b><a href=\"javascript:history.back();\">zurück</a></p></b>";
   }
} }
else
{
?>
also da steht dann noch viel mehr... ist halt noch nicht fertig... Und nun blick ich nicht so ganz durch wie ich das da hinschreiben muss, damit es funktioniert...
pixelprinzessin ist offline  
Alt 24.06.2008, 13:40  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Naja du musst halt wissen was du willst. Sollen denn die Tarifmerkmale mit Komma getrennt in die Mail oder wie stellst du dir das vor?
cycap ist offline  
Alt 24.06.2008, 13:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

ganz einfach:
PHP-Code:
$Header .= "\nSie haben ausgewählt (oder so): \n";
foreach(
$_POST['tarifmerkmale'] as $value)
  {
  
$Header .=  $value "\n"
  } 
Alternativ:
PHP-Code:
$Header .=  "\nSie haben ausgewählt: \n" implode ("\n" $_POST['tarifmerkmale']); 
Was Du Header nennst ist übrigens teilweise Header und tw. die Nachricht. Bitte beachte die richtigen Parameter der mail Funktion. Als nächstes solltest Du Dir gleich über die Gefahr der Email-Injection klar werden und alle User-Inputs die in den Header eingehen auf Zeilenumbrüche untersuchen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (24.06.2008 um 13:46 Uhr).
nikosch ist gerade online  
Alt 24.06.2008, 13:58  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard

uhhh danke es funktioniert!
dankeschöööön

lg denise
pixelprinzessin ist offline  
Alt 24.06.2008, 14:44  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

dann markier ich den Beitrag mal als erledigt, bitte nächstes mal selber dran denken
cycap ist offline  
 


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Max Anzahl Checkboxen Hu5eL JavaScript, Ajax und mehr 2 25.06.2008 15:37
Prototype Ajax Array Datenmüll notyyy HTML, Usability und Barrierefreiheit 2 08.04.2008 10:57
Was mime_content_type übergeben dethlef14 PHP Tipps 2006 16 11.10.2006 17:35
open_basedir greift ab und an CC84 PHP-Fortgeschrittene 7 28.09.2006 08:01
MySQL mit phpMyAdmin verwalten Datenbanken 20 13.04.2006 11:13
PHP-Safe-Mode Configuration mit Xampp - Scripts laufen nicht DerN8WaechterX PHP Tipps 2006 7 27.01.2006 00:41
Problem mit php/mysql PHP Tipps 2005-2 29 10.08.2005 14:33
[Erledigt] Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar PHP-Fortgeschrittene 19 31.05.2005 14:52
[Erledigt] Error Mail() function PHP Tipps 2005 3 14.04.2005 03:32
[Erledigt] warum kann nicht SVG files laden? PHP Tipps 2005 16 09.03.2005 14:05
Thumb function PHP Tipps 2005 5 07.03.2005 22:28
[Erledigt] Warning: filemtime() [function.filemtime]: stat failed for PHP-Fortgeschrittene 12 25.02.2005 19:44
Session Problem beim Login PHP Tipps 2004-2 6 15.12.2004 09:37
Variable fehlt PHP Tipps 2004-2 4 10.12.2004 13:06
Einloggen funzt einfach nicht... PHP Tipps 2004 4 29.06.2004 11:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php checkbox ausgeben, checkbox gleicher name, checkbox ausgeben, php checkboxen ausgeben, checkbox php ausgeben, php checkbox wert ausgeben, checkboxen mit gleichem namen, php formularwerte ausgeben checkbox, checkbox inhalt ausgeben, checkbox value ausgeben, php checkbox gleicher name, checkboxen ausgeben, html checkbox gleicher name, mehrere checkboxen gleicher name, checkbox mit php ausgeben, checkboxen ausgeben php, http://www.php.de/php-tipps-2008/1806-erledigt-checkboxen-mit-gleichem-name-value-ausgeben.html, radiobutton wert ausgeben php, checkbox in php ausgeben, checkbox gleicher name php

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum