Div Ausgabe als Value für ein Inputfeld

Ein Ansatz wäre, dass du mit Arrays arbeitest. Quasi so:
PHP:
    <?php
        $anrede =  $datas["fa_anrede"];  // Sollte Werte zwischen 0-2 annhemen => 0 = Frau, 1 = Mann, 3 = Generelle Ansprache
       $arrP=[
                   [
                       'sex'       =>   'Frau',
                       'anrede'   =>    'Frau',
                       'grammer'   =>  ['',''],
                       'name'       =>  ' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"]
                   ],
                   [
                       'sex'       =>   'Mann',
                       'anrede'   =>    'Herr',
                       'grammer'   =>  ['r','n'],
                       'name'       =>  ' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"]
                   ],
                   [
                       'sex'       =>   '',
                       'anrede'   =>    'Damen und Herren',
                       'grammer'   =>  ['',''],
                       'name'       =>  ''
                   ]

               ];
       $ausgabe = $arrP[$anrede];
       echo 'Sehr geehrte'.$ausgabe["grammer"][0].' '.$ausgabe["anrede"].$ausgabe["name"].',';

     // Herrn würdest du so erzeugen:   echo  $ausgabe["anrede"].$ausgabe["grammer"][1];
    ?>
 
@abdellaui wollte ihn gerade was in der Richtung vorschlagen :D

@CreativPur ich weiß ja nicht, wie du in deiner Entwicklungsumgebung den Quellcode schreibst, aber wenn du den Quellcode Strukturiert schreibst lässt er sich etwas leichter lesen und man kann Abhängigkeiten besser lesen.
PHP:
<?php
                $anrede =  $datas["fa_anrede"]  ;
                switch ($anrede)
                {
                case "Frau":
                echo "Sehr geehrte Frau " . $datas["fa_vorname"] . " " . $datas["fa_nachname"] . ",";
                break;
                case "Herr":
                echo "Sehr geehrter Herr " . $datas["fa_vorname"] . " " . $datas["fa_nachname"] . ",";
                break;
                default:
                echo "Sehr geehrte Damen und Herren,";
                }
                ?>

So wäre ein Beispiel, wie es sich z.B. etwas leichter lesen lässt:
PHP:
<?php
$anrede =  $datas["fa_anrede"];
switch ($anrede)
{
   case "Frau":
      echo "Sehr geehrte Frau " . $datas["fa_vorname"] . " " . $datas["fa_nachname"] . ",";
      break;
   case "Herr":
      echo "Sehr geehrter Herr " . $datas["fa_vorname"] . " " . $datas["fa_nachname"] . ",";
      break;
   default:
      echo "Sehr geehrte Damen und Herren,";
}
?>
 
da muss ich Merci86 recht geben...
Ich bin halt nur ein Web-"Designer"
und fusche mich mit Programm-Code so durch leben..
Ich habe versucht, das Script von abdellaui in mein Wirrwarr einzubauen, aber leider ohne Erfolg ..
Mir werden in der 2 und 3. Spalte gleich Fehlermeldungen ausgegeben..

PHP:
$anrede =  $datas["fa_anrede"];
$arrP = [['sex'=>'Frau','anrede'=>'Frau','grammer'=>['',''],'name'=>' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"],
         ['sex'=>'Mann','anrede'=>'Herr','grammer'=>['r','n'],'name'=>' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"],
         ['sex'=>'','anrede'=> 'Damen und Herren','grammer'=>['',''],'name'=>'']];
            
       $ausgabe = $arrP[$anrede];
       echo 'Sehr geehrte'.$ausgabe["grammer"][0].' '.$ausgabe["anrede"].$ausgabe["name"].',';
       echo  $ausgabe["anrede"].$ausgabe["grammer"][1];
 
Bei mir funktionierts.
Ist es möglich, dass du $datas['fa_anrede'] weiterhin als "Mann/Frau/etc." übergibts, oder kann es sein, dass du beim abschreiben einen Klammer zu wenig oder ein Kommer zu viel gesetzt hast?

PHP:
<?php
       $datas = [
           "fa_anrede"=>2,
           "fa_vorname"=>'ASD',
           "fa_nachname"=>'FGH'
       ];

       $anrede =  $datas["fa_anrede"];  // Sollte Werte zwischen 0-2 annhemen => 0 = Frau, 1 = Mann, 3 = Generelle Ansprache
       $arrP=[
                   [
                       'sex'       =>   'Frau',
                       'anrede'   =>    'Frau',
                       'grammer'   =>  ['',''],
                       'name'       =>  ' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"]
                   ],
                   [
                       'sex'       =>   'Mann',
                       'anrede'   =>    'Herr',
                       'grammer'   =>  ['r','n'],
                       'name'       =>  ' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"]
                   ],
                   [
                       'sex'       =>   '',
                       'anrede'   =>    'Damen und Herren',
                       'grammer'   =>  ['',''],
                       'name'       =>  ''
                   ]
               ];
       $ausgabe = $arrP[$anrede];
       echo 'Sehr geehrte'.$ausgabe["grammer"][0].' '.$ausgabe["anrede"].$ausgabe["name"].',';
       echo  $ausgabe["anrede"].$ausgabe["grammer"][1];
      ?>
 
Nein.. Ich habe in der Select-Box die Optionen auf 0,1,2 geändert und habe deinen Code nicht abgeschrieben, sondern kopiert .
Dennoch wie du siehst, kommt folgendes Resultat

fehler.png
 
Anscheinend erkennt dein Framework nicht die Kurzschreibweise eines Arrays.

Versuche mal:
PHP:
<?php
       $datas = Array(
           'fa_anrede'=>2,
           'fa_vorname'=>'ASD',
           'fa_nachname'=>'FGH'
       );
       $anrede =  $datas["fa_anrede"];  // Sollte Werte zwischen 0-2 annhemen => 0 = Frau, 1 = Mann, 3 = Generelle Ansprache
       $arrP = Array(
                   Array(
                       'sex'       =>   'Frau',
                       'anrede'   =>    'Frau',
                       'grammer'   =>  Array('',''),
                       'name'       =>  ' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"]
                   ),
                   Array(
                       'sex'       =>   'Mann',
                       'anrede'   =>    'Herr',
                       'grammer'   =>  Array('r','n'),
                       'name'       =>  ' '. $datas["fa_vorname"] . ' ' . $datas["fa_nachname"]
                   ),
                   Array(
                       'sex'       =>   '',
                       'anrede'   =>    'Damen und Herren',
                       'grammer'   =>  Array('',''),
                       'name'       =>  ''
                   )
               );
       $ausgabe = $arrP[$anrede];
       echo 'Sehr geehrte'.$ausgabe["grammer"][0].' '.$ausgabe["anrede"].$ausgabe["name"].',';
       echo  $ausgabe["anrede"].$ausgabe["grammer"][1];
      ?>
 
Moin,

@CreativPur: wollte übrigens gestern Deinen Beitrag nicht abwürgen (durch das "als gelöst markieren"), sondern nur weitere Pöbeleien von dem Typ verhindern!
Allerdngs verhindert das wohl nicht, das weiter geschrieben werden kann ...

Na, hoffen wir mal, dass er wirklich wieder weg ist und die Pöbeleien (die mich auch vor diesen Thread hier als PN erwischten) vorbei sind :)
Viele Grüße
Klaus
 

Neue Beiträge

Zurück