Ankündigung

Einklappen
Keine Ankündigung bisher.

Dropdown aus txt file vorwählen (selected)

Einklappen

Neue Werbung 2019

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

  • dlvphp
    hat ein Thema erstellt Dropdown aus txt file vorwählen (selected).

    Dropdown aus txt file vorwählen (selected)

    Hallo Leute,

    ich bin momentan dabei ein webinterface für meinen Raspberry zu erstellen.
    folgendes funktioniert bereits.

    -index.php mit chromium auf pi im kiosk mode starten.
    -werte mit dropdown auswählen und per post in eine txt schreiben (transferdata.txt)
    - werte wieder auslesen und in text feldern anzeigen
    - werte wieder auslesen und checkboxen als selected anzeigen wenn der richtige wert in der txt steht.

    soweit so gut....

    jetzt meine Frage:

    ich möchte im dropdown die zahl als selected anzeigen die ich aus der txt lese , aber das kreige ich nicht hin.

    kann evt. jemand meinen code prüfen und mir einen lösungsansatz geben.

    der focus liegt hier auf $stunde1 = $ARR_rows[8]; als variable
    und im dropdown auf

    <option value="1" <?php Echo $sel;?>>1</option>

    hier nochmal der ganze code für die index.php:

    PHP-Code:
    <?php
    //Datei einlesen
    $STR_filecontent file_get_contents("transferdata.txt");
    $ARR_rows explode("\n"$STR_filecontent);

        
    $CH1 $ARR_rows[4]; //Schreibt den Wert aus Zeile 4 in CH1
        
    $CH2 $ARR_rows[5];
        
    $CH3 $ARR_rows[6];
        
    $CH4 $ARR_rows[7];
        
    $stunde1 $ARR_rows[8];
        

    if (
    $stunde1 == '1')
        {
            
    $sel "selected";
        }
        else
        {
        
    $sel "unselected";
        }
    if (
    $stunde1 == '2')
        {
            
    $sel "selected";
        }
        else
        {
        
    $sel "unselected";
        }
    if (
    $stunde1 == '3')
        {
            
    $sel "selected";
        }
        else
        {
        
    $sel "unselected";
        }
    readfile ('transferdata.txt');
    echo 
    $sel;
    ?>
    <html>
    <form method="post" action="writedata.php">
    Version 1.0

    <p>Grenzwert 1 in C <input name="gw1" type="text" size="3" maxlength="2" value=<?php Echo $ARR_rows[0];?> </p>
    <p>Grenzwert 2 in C <input name="gw2" type="text" size="3" maxlength="2" value=<?php Echo $ARR_rows[1];?> </p>
    <p>Grenzwert 3 in C <input name="gw3" type="text" size="3" maxlength="2" value=<?php Echo $ARR_rows[2];?> </p>
    <p>Grenzwert 4 in C <input name="gw4" type="text" size="3" maxlength="2" value=<?php Echo $ARR_rows[3];?> </p>
    <br>
    <br>
    <input type="checkbox" name="CH1" value="1"
        <?php if ($CH1 == '1') echo 'checked="checked"';?> /> Aktiviert<br>

    <input type="checkbox" name="CH2" value="2"
        <?php if ($CH2 == '2') echo 'checked="checked"';?> /> Aktiviert<br>

    <input type="checkbox" name="CH3" value="3"
        <?php if ($CH3 == '3') echo 'checked="checked"';?> /> Aktiviert<br>

    <input type="checkbox" name="CH4" value="4"
        <?php if ($CH4 == '4') echo 'checked="checked"';?> /> Aktiviert<br>
    <br>

    <p>Stunden <input name="stundenzeigen" size="3" maxlength="2" value=<?php Echo $ARR_rows[8];?> </p>

    <p>Stunde: <select name="stundenan">
    <option value="00"<?php Echo $sel;?>>00</option>
    <option value="1" <?php Echo $sel;?>>1</option>
    <option value="2" <?php Echo $sel;?>>2</option> 
    <option value="3" <?php Echo $sel;?>>3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    </select>
    <br>
    <p>Minuten: <select name="minutenan">
    <option value="00">00</option>
    <option value="5">5</option>
    <option value="10">10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    <option value="25">25</option>
    <option value="30">30</option>
    <option value="35">35</option>
    <option value="40">40</option>
    <option value="45">45</option>
    <option value="50">50</option>
    <option value="55">55</option>
    </select>
    <br>
    <br>
    <br>
    <br>
    <input type="submit" name="Button" onClick="history.go(0)" value="Abschicken">
    <br>
    <INPUT TYPE="button" onClick="history.go(0)" VALUE="Refresh"> 
    <br>
    </form>

    Vielen Dank.

  • dlvphp
    antwortet
    Hahaha....das habe ich vor....

    Einen Kommentar schreiben:


  • ChristianK
    antwortet
    Innerhalb der einen Minute wirst du das logisch nicht verstanden haben... Nimm dir doch 10 Minuten, 30 Minuten, 2 Stunden Zeit und lerne das vernünftig.

    Einen Kommentar schreiben:


  • dlvphp
    antwortet
    Bis jeztz nur Bahnhof

    Einen Kommentar schreiben:


  • dlvphp
    antwortet
    Super danke für die schnelle Antwort. ..muss ich mir mal genauer anschauen. ..

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Du machst einen (typischen) Anfänger-Fehler. Ich rate dir dazu das JSON-Format zum speichern zu verwenden.

    Speicher:
    PHP-Code:
    $data = array(1,2,3,4,5);
    file_put_contents('data.json'json_encode($data)); 
    Laden:
    PHP-Code:
    $data json_decode(file_get_contents('data.json'), true);
    echo 
    $data[0]; // echo'ed: 1 
    Wenn du eine Selektion makieren willst und einen Select-Block erzeugen willst kannst du das mit geringen aufwand, ohne großartig mit for, foreach oder while zu arbeiten. Das können die array-Werkzeuge von PHP mit bravour.

    PHP-Code:
    $currentHour 10;

    $selects array_map(function($hour) use ($currentHour) {
       
    $selected $hour === $currentHour
          
    ' selected="selected"'
          
    '';

       return 
    sprintf(
          
    '<option value="%u"%s>%u</option>',
          
    $hour,
          
    $selected,
          
    $hour
       
    );
    }, 
    range(023));

    echo 
    '<select name="foo">'.PHP_EOL.join(PHP_EOL$selects).PHP_EOL.'</select>'
    Es spricht nichts dagegen das du for-Schleifen verwendest, ich persönlich würde aber Array-mapping einer Werte-gesteuerten Traversion vorziehen, da hier gezeigte Array-mappings immer einen eigenen kontrollierbaren Scope benutzen. Schleifen tun das nicht.

    Einen Kommentar schreiben:


  • dlvphp
    antwortet
    Scheint recht kompliziert zu sein....

    Einen Kommentar schreiben:


  • dlvphp
    antwortet
    Danke für die schnelle Antwort aber ich verstehe sie nicht ganz...
    Was meinst du mit // Durchläuft die Stunden 0 bis 23

    und wo lese ich die txt datei aus?
    Sorry bin halt noch Anfänger...

    Einen Kommentar schreiben:


  • VPh
    antwortet
    PHP-Code:
    if ($stunde1 == '1')
        {
            
    $sel "selected";
        }
        else
        {
        
    $sel "unselected";
        }
    if (
    $stunde1 == '2')
        {
            
    $sel "selected";
        }
        else
        {
        
    $sel "unselected";
        }
    if (
    $stunde1 == '3')
        {
            
    $sel "selected";
        }
        else
        {
        
    $sel "unselected";
        } 
    Damit setzt du die Variable immer wieder neu, selbst wenn sie am Anfang auf selected gesetzt wird, würde an Ende unselected rauskommen.

    Ich denke für dich würde sich eine Schleife anbieten

    PHP-Code:
    // Durchläuft die Stunden 0 bis 23
    for($aktuelleStunde 0$aktuelleStunde 24$aktuelleStunde++){

        
    // prüft ob der Zähler des aktuellen Durchlaufs mit dem Wert aus der Datei übereinstimmt
        // falls ja, wird selected gesetzt
        
    $sel $aktuelleStunde === $stunde1 'selected' null;

        
    // Ausgabe
        
    echo '<option value="'.$aktuelleStunde.'" '.$sel.' >'.$aktuelleStunde.'</option> ';

    Einen Kommentar schreiben:

Lädt...
X