Ergebnis 1 bis 6 von 6

Thema: PHP variable Variable in Funktion

  1. #1
    Arno654
    Gast

    Standard PHP variable Variable in Funktion

    Hallo! Ich bin verzweifelt auf der Suche nach den richtigen Steuerzeichen...
    Die Situation ist so: eine Selectbox soll eine bestimmte Zeile durch das attribut 'selected' ausgewählt sein. Welche Zeile es ist hängt von anderen Dingen ab.

    Ich versuche eine Funktion hierfür zu schreiben:

    FUNKTION:
    function selecta($selectid,$selectvalue)
    {
    echo "value=\"" . $selectvalue . "\"";
    if ( $selectvalue == $"$selectid" )
    {
    echo " selected=\"selected\"";
    }
    }

    FUNKTIONSAUFRUF:
    <select name="Format" id="Format">
    <option <?php selecta("Format","DIN A4"); ?>>DIN A4 (21,0 &times; 29,7cm)</option>
    <option <?php selecta("Format","DIN A5"); ?>>DIN A5 (14,8 &times; 21,0cm)</option>
    <option <?php selecta("Format","DIN A6"); ?>>DIN A6 (10,5 &times; 14,8cm)</option>
    <option <?php selecta("Format","DIN Lang"); ?>>DIN Lang (9,9 &times; 21,0cm)</option>
    <option <?php selecta("Format","GastroFormat"); ?>>GastroFormat (6,5 &times; 14,8cm)</option>
    <option <?php selecta("Format","sonstiges"); ?>>sonstiges - Bitte vermerken</option>
    </select>

    Als erstes soll der 2te übergebene Wert mit "value=" herum herausgegeben werden, dann soll geprüft werden ob $selectvalue mit dem Inhalt der Variable mit dem Namen von $selectid übereinstimmt. Wenn ja, soll dann das "selected" mit dahinter geschrieben werden.

    Jetzt meine Frage:
    if ( $selectvalue == $"$selectid" ) ist so nicht richtig von der Syntax!
    Wie schreibe ich also "Inhalt von der Variablen mit Namen..." ?

    Danke für Eure Hilfe!!!
    Arno
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: PHP variable Variable in Funktion

    Oha, das sieht aber böse aus!!
    Also den Inhalt deiner Variable als Variablennamen zu nehmen machst du mit $$selectid.

    Trotzdem ist das was du da machst alles andere als schön. Wenn du ein bißchen mehr Code postest wären da sicherlich einige Verbesserungsvorschläge drin die dir das weitere coden leichtermachen.

    Edit: Das Forum hier hat übrigens schöne Formatierungsmöglichkeiten für PHP-Code: [ php ] [ /php ] bzw. [ html ] [ /html ] (jeweils ohne die Leerzeichen).
    Wenn du dann noch einrückst sieht dein Code so aus:
    PHP-Code:
    function selecta($selectid,$selectvalue)
    {
        echo 
    "value=\"" $selectvalue "\"";
        if ( 
    $selectvalue == $"$selectid)
        {
            echo 
    " selected=\"selected\"";
        }

    HTML-Code:
    <select name="Format" id="Format">
      <option <?php selecta("Format","DIN A4"); ?>>DIN A4 (21,0 &times; 29,7cm)</option>
      <option <?php selecta("Format","DIN A5"); ?>>DIN A5 (14,8 &times; 21,0cm)</option>
      <option <?php selecta("Format","DIN A6"); ?>>DIN A6 (10,5 &times; 14,8cm)</option>
      <option <?php selecta("Format","DIN Lang"); ?>>DIN Lang (9,9 &times; 21,0cm)</option>
      <option <?php selecta("Format","GastroFormat"); ?>>GastroFormat (6,5 &times; 14,8cm)</option>
      <option <?php selecta("Format","sonstiges"); ?>>sonstiges - Bitte vermerken</option>
    </select>
    Geändert von SinnlosS (24.03.2009 um 22:24 Uhr)
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  3. #3
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: PHP variable Variable in Funktion

    Ein Beispiel wie das schon schöner gelöst ist:
    PHP-Code:
    $formate = array(
        
    1=>"DIN A4 (21,0 &times; 29,7cm)",
        
    2=>"DIN A5 (14,8 &times; 21,0cm)",
        
    3=>"DIN A6 (10,5 &times; 14,8cm)",
        
    4=>"DIN Lang (9,9 &times; 21,0cm)",
        
    5=>"GastroFormat (6,5 &times; 14,8cm)",
        
    6=>"sonstiges - Bitte vermerken"
    );
    $options_formate "";
    foreach(
    $formate as $k=>$v) {
        
    $selected $k==$deinVorzuselektierenderWert "selected" "";
        
    $options_formate.= "  <option value='{$k}{$selected}>{$v}</option>\n";

    An entsprechender Stelle dann eben ausgeben mit
    PHP-Code:
    echo "
    <select name='Format' id='Format'>
    {$options_formate}
    </select>"

    oder
    HTML-Code:
    <select name='Format' id='Format'>
    <?php echo $options_formate; ?>
    </select>
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  4. #4
    Arno654
    Gast

    Standard AW: PHP variable Variable in Funktion

    Ok! Also ich hab mal 2 dummy-Dateien vorbereitet, die poste ich mal hier
    einfach mal in den xampp rein und probieren:
    dummy1.php:
    PHP-Code:
    <html>
        <head>
            <title>Dummy-Formular Teil 1</title>
        </head>
        <body>
            <div style="background:#FFDDDD;">
                   <h1>Dummy Formular Teil 1</h1>
                   <p>Menü</p>
                <ul>
                    <li><a href="dummy1.php">Teil 1 - Variablen an Teil 2 weitergeben</a></li>
                    <li><a href="dummy2.php">Teil 2 - Variablen auslesen und damit Formular ausfüllen</a></li>
                </ul>
            </div>
            <div style="background:#DDFFDD">
                <h2>Füllen Sie das Formular aus und klicken auf 'ERZEUGEN'</h2>
                <fieldset>
                    <legend>URL-Erzeugung</legend>
                    <form method="GET">
                        <label for="FormatEingabe">Format</label>
                        <select name="FormatEingabe" id="FormatEingabe"> 
                            <option value="DIN A4" selected="selected">DIN A4 (21,0 &times; 29,7cm)</option>
                            <option value="DIN A5">DIN A5 (14,8 &times; 21,0cm)</option>
                            <option value="DIN A6">DIN A6 (10,5 &times; 14,8cm)</option>
                            <option value="DIN Lang">DIN Lang (9,9 &times; 21,0cm)</option>
                            <option value="Gastroformat">Gastroformat (6,5 &times; 14,8cm)</option>
                            <option value="sonstiges">sonstiges - Bitte vermerken</option>
                        </select>
                        <label for="AnmerkungEingabe">Format</label>
                        <textarea id="AnmerkungEingabe" name="AnmerkungEingabe" cols="50" rows="10"></textarea>
                        <input class="submit" type="submit" value="ERZEUGEN" name="submit"/>
                    </form>
                </fieldset>
            </div>
            <div style="background:#DDDDFF;">
                <h2>Wenn hier ein Link steht, klicken Sie ihn bitte an, um auf die nächste Seite zu gelangen</h2>
                <?php
                    $FormatEingabe 
    $_GET['FormatEingabe'];
                    
    $AnmerkungEingabe $_GET['AnmerkungEingabe'];
                    if ( 
    $AnmerkungEingabe == "" ) {
                        echo 
    "Kein Link :D"; }
                        ELSE {    
                        
    $array[] = $FormatEingabe;
                        
    $array[] = $AnmerkungEingabe;
                        
    $unencoded implode("*",$array);
                        
    $encoded base64_encode($unencoded);
                        
    //$unencoded = "\"format\"=>\"" . $FormatEingabe . "\",\"anmerkung\"=>\"" . $AnmerkungEingabe . "\"";
                        //$encoded = base64_encode($unencoded);
                        
    echo "<a href=\"dummy2.php?data=" $encoded "\">Weiter</a>";
                        }
                
    ?>
            </div>
        </body>
    </html>

    dummy1.php:
    PHP-Code:
    <html>
        <head>
            <title>Dummy-Formular Teil 2</title>
        </head>
        <body>
            <?php 
                $base64 
    $_GET['data'];
                echo 
    $base64;
                
    $data base64_decode($base64);
                echo 
    "<br>" $data;
                
    $dataexploded explode("*",$data);
                echo 
    "<br>";
                
    print_r $dataexploded );
                
    $Format $dataexploded[0];
                
    $Anmerkung $dataexploded[1];
                echo 
    $Format;
                function 
    selecta($selectid,$selectvalue
                    {
                           echo 
    "value=\"" $selectvalue "\"";
                           if ( 
    $selectvalue == $"$selectid//DIESE ZEILE STIMMT NICHT
                            
    {
                                echo 
    " selected=\"selected\"";
                            }
                    }         
            
    ?>
            
            

        <div style="background:#FFDDDD;">
                   <h1>Dummy Formular Teil 2</h1>
                   <p>Menü</p>
                <ul>
                    <li><a href="dummy1.php">Teil 1 - Variablen an Teil 2 weitergeben</a></li>
                    <li><a href="dummy2.php">Teil 2 - Variablen auslesen und damit Formular ausfüllen</a></li>
                </ul>
            </div>
            
            <div style="background:#DDFFDD">
                <h2>Dies liest PHP aus der URL</h2>
                <ul>
                    <li>Format: <span style="color:#003300"><?php echo $Format?></span</li>
                    <li>Eingabe: <span style="color:#003300"><?php echo $Anmerkung?></span></li>
                </ul>
            </div>
            <div style="background:#DDDDFF;">
                <fieldset>
                    <legend>Zurück in das Formular:</legend>
                        <label for="Format">Format</label>
                        1
                        <label for="Eingabe">Format</label>
                        <textarea id="Eingabe" name="Eingabe" cols="50" rows="10"><?php echo $Anmerkung?></textarea>
                </fieldset>
            </div>
        </body>
    </html>
    also, was sagt ihr?

  5. #5
    Arno654
    Gast

    Standard AW: PHP variable Variable in Funktion

    Hallo SinnlosS! Da haben wir wohl gleichzeitig gepostet
    Auf die Lösung
    PHP-Code:
    $formate = array(
        
    1=>"DIN A4 (21,0 &times; 29,7cm)",
        
    2=>"DIN A5 (14,8 &times; 21,0cm)",
        
    3=>"DIN A6 (10,5 &times; 14,8cm)",
        
    4=>"DIN Lang (9,9 &times; 21,0cm)",
        
    5=>"GastroFormat (6,5 &times; 14,8cm)",
        
    6=>"sonstiges - Bitte vermerken"
    );
    $options_formate "";
    foreach(
    $formate as $k=>$v) {
        
    $selected $k==$deinVorzuselektierenderWert "selected" "";
        
    $options_formate.= "  <option value='{$k}{$selected}>{$v}</option>\n";

    wär ich blutiger Anfänger nicht gekommen Danke für deine Hilfe, die Lösung ist cool!
    Es gibt aber einen Unterschied: bei mir steht in den <option>-Tags nur value="Din A4", "Din A5" usw., die Formatangaben mit Zentimetern stehen nur im Text drin, den der User sieht, nicht bei Value. Ich probier jetzt, deinen Script dahin zu erweitern mit einem weiteren Array. Mal sehen, wie weit ich komme ... wenn du die Lösung schon weisst, wär echt nett wenn du die postest.

  6. #6
    Arno654
    Gast

    Standard AW: PHP variable Variable in Funktion

    habs geschafft, yes :=)
    PHP-Code:
    $formate = array(
        
    1=>"DIN A4",
        
    2=>"DIN A5",
        
    3=>"DIN A6",
        
    4=>"DIN Lang",
        
    5=>"Gastroformat",
        
    6=>"sonstiges"
    );
    $formatezusatz = array(
        
    1=>" (21,0 &times; 29,7cm)",
        
    2=>" (14,8 &times; 21,0cm)",
        
    3=>" (10,5 &times; 14,8cm)",
        
    4=>" (9,9 &times; 21,0cm)",
        
    5=>" (6,5 &times; 14,8cm)",
        
    6=>" - Bitte vermerken"
    );
    $options_formate "";
    foreach(
    $formate as $k=>$v) {
        
    $selected $v==$Format "selected=\"selected\"" "";
        
    $options_formate.= "<option value='{$v}{$selected}  >{$v}{$formatezusatz[$k]}</option>\n";
        } 
    Nochmals vielen vielen Dank für deine Hilfe!!!!

Ähnliche Themen

  1. Variable Anzahl Formularfelder an Javascript/PHP-Funktion übergeben
    Von chuqa im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 26.01.2009, 14:18
  2. Funktion zum Speichern von Text in Variable: <<<
    Von Mir nicht im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 22.11.2007, 14:59
  3. Wie bekomme ich ein eine Variable eine Post variable?
    Von Gigazone im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 27.05.2006, 16:41
  4. [JavaScript] Funktion, die eine Variable speichert, die ...
    Von dr. orange im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 05.10.2005, 18:02
  5. Text-Zahl in Variable in Integer-Zahl in Variable umformen
    Von Steven im Forum HTML & CSS Forum
    Antworten: 8
    Letzter Beitrag: 13.06.2005, 13:30

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •