Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Checkboxen mit gleichem Name -> Value ausgeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [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


  • #2
    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.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      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

      Kommentar


      • #4
        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

        Kommentar


        • #5
          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

          Kommentar


          • #6
            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...

            Kommentar


            • #7
              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?

              Kommentar


              • #8
                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.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  uhhh danke es funktioniert!
                  dankeschöööön

                  lg denise

                  Kommentar


                  • #10
                    dann markier ich den Beitrag mal als erledigt, bitte nächstes mal selber dran denken

                    Kommentar

                    Lädt...
                    X