Ankündigung

Einklappen
Keine Ankündigung bisher.

bestimmte Sätze auf dem Bildschirm sollen eine bestimmt Farbe bekommen

Einklappen

Neue Werbung 2019

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

  • bestimmte Sätze auf dem Bildschirm sollen eine bestimmt Farbe bekommen

    Hallo,

    auf meiner PHP-Seite soll immer wenn dort irgendwo 'Offen' steht soll Offen automatisch rot sein. Wenn dort irgendwo 'in Bearbeitung' steht soll in Bearbeitung Orange sein und wenn dort irgendwo 'geschlossen' steht soll geschlossen grün sein.

    Kann mir dabei einer helfen?


  • #2
    - lege dir css Klassen an dafür
    - ersetze im Zuge der Ausgabe des HTML-Quelltextes an den Browser dann zB mit str_replace() das reine Wort in zB einen span Tag mit der entsprechenden css-Klasse.
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      ich aber die ändern sich ja immer weil die aus einer datenbank kommen und da immer anderes drin steht

      Kommentar


      • #4
        Kann es sein, dass du das nicht verstanden hast;
        Zitat von hausl Beitrag anzeigen
        - ersetze im Zuge der Ausgabe des HTML-Quelltextes an den Browser dann zB mit str_replace() das reine Wort in zB einen span Tag mit der entsprechenden css-Klasse.
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          So halt irgendwie als Ansatz - sei kretaiv (hier getippter Pseudocode):

          In deiner .css Datei:
          HTML-Code:
          .red { color: #ff0000; }
          .green { ... }

          PHP-Code:
          function replaceToColorSpan($word$color) {
              return 
          '<span class="'.$color.'">'.$word.'</span>';
          }


          // Ausgabe:
          echo replaceToColorSpan("Hans""red");
          // <span class="red">Hans</span> 
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Du kannst das z.B auch gleich in der SQL-Abfrage mit CASE erledingen.

            so wie
            PHP-Code:
            SELECT status
                   CASE 
            status WHEN 'offen'          THEN '#ff0000'
                               
            WHEN 'in Bearbeitung' THEN '#ff8000'
                               
            WHEN 'geschlossen'    THEN '#00ff00'
                               
            END AS farbe
            -- ... 
            und dann mit
            PHP-Code:
            echo "<span style=\"color:$data['farbe']\">$data['status']</span>" 
            ausgeben

            Kommentar


            • #7
              könntest du mir das einmal in meinen code einbauen?

              PHP-Code:
                  <?php
                                   
                      

                                  
                      
                              mysql_connect
              ('localhost','root') or die(mysql_error());
                              
              mysql_select_db('fehlermeldung') or die(mysql_error());

                              
              $sql "SELECT * FROM fehlermeldung";
                              
              $query mysql_query($sql) or die(mysql_error());
                  
                              echo 
              '<table class="tabelle_error_site" border><tr style="color:white;"><th style="width:100px">ID</th><th>Meldung</th><th style="width:300px">Status</th></tr>';
                                  while(
              $fetch mysql_fetch_assoc($query))
                                  {
                                      echo 
              '<tr>';
                                      echo 
              '<td style="width:100px; color:white;">'.$fetch['id'].'</td>';
                                      echo 
              '<td style="color:white;">'.$fetch['meldung'].'</td>';
                                      echo 
              '<td style="width:300px;">'.$fetch['status'].'</td>';
                                      echo 
              '</tr>';
                                  
                                  }
               
                              echo 
              '</table></div>';

                      
              ?>

              Kommentar


              • #8
                Zitat von hotcmiln Beitrag anzeigen
                könntest du mir das einmal in meinen code einbauen?
                Nein. Wenn du konkrete Probleme dabei hast kannst du gerne nachfragen aber das Forum ist nicht dazu da dir deinen Code umzuschreiben (Ausnahme: die Jobangebote weiter unten).

                Kommentar


                • #9
                  ja nur mein Problem ist ich bin echter PHP Anfänger und noch ein viel größerer MySQL Anfänger. Ich versuche gerade alles irgendwie zusammen zu basteln mit Hilfe des Internet und ich weiß einfach nicht wie ich jeztzt
                  PHP-Code:
                  SELECT status
                         CASE 
                  status WHEN 'offen'          THEN '#ff0000'
                                     
                  WHEN 'in Bearbeitung' THEN '#ff8000'
                                     
                  WHEN 'geschlossen'    THEN '00ff00'
                                     
                  END AS 'farbe'
                  in meinen Code einbauen muss und alle welche stellen und wie es funktioniert ohne das Fehler kommen.

                  Kommentar


                  • #10
                    Zitat von hotcmiln Beitrag anzeigen
                    Ich versuche gerade alles irgendwie zusammen zu basteln mit Hilfe des Internet und ich weiß einfach nicht wie ich jeztzt
                    PHP-Code:
                    SELECT status
                           CASE 
                    status WHEN 'offen'          THEN '#ff0000'
                                       
                    WHEN 'in Bearbeitung' THEN '#ff8000'
                                       
                    WHEN 'geschlossen'    THEN '00ff00'
                                       
                    END AS 'farbe'
                    in meinen Code einbauen muss und alle welche stellen und wie es funktioniert ohne das Fehler kommen.
                    Das steht doch quasi schon da: der Teil »CASE ... END as farbe« (um »farbe« dürfen keine Anführungszeichen stehen, das ist falsch) gehört im SELECT-Query an die Stelle an der die Spaltennamen stehen. Bei dir steht da nur ein »*« was ohnehin schlecht ist da man immer alle Spalten angeben sollte die man benötigt. Versuch es einfach mal einzubauen und wenn es nicht funktioniert poste das was du versucht hast.

                    Kommentar


                    • #11
                      wie gesagt ich bin ein echter blutiger anfänger
                      PHP-Code:
                      <?php
                                           
                                  $server 
                      "localhost";
                                      
                      $datenbank "fehlermeldung";
                                      
                      $username "root";
                                      
                      $passwort "";

                                     
                      mysql_connect($server$username$passwort);
                                  
                      mysql_select_db('fehlermeldung') or die(mysql_error());
                                          
                                                      
                      mysql_query("SELECT status,  
                                                             CASE status WHEN 'offen'          THEN '#ff0000' 
                                                                            WHEN 'in Bearbeitung' THEN '#ff8000' 
                                                                                                 WHEN 'geschlossen'    THEN '00ff00' 
                                                                                                  END AS farbe,"
                      );
                                             

                                      
                      mysql_close();    
                                  

                                  
                      /* SELECT status,  
                                     CASE status WHEN 'offen'        THEN '#ff0000' 
                                                WHEN 'in Bearbeitung'         THEN '#ff8000' 
                                                 WHEN 'geschlossen'            THEN '00ff00' 
                                                  END AS 'farbe', */  
                                          
                              
                                      
                      mysql_connect('localhost','root') or die(mysql_error());
                                      
                      mysql_select_db('fehlermeldung') or die(mysql_error());

                                      
                      $sql "SELECT * FROM fehlermeldung";
                                      
                      $query mysql_query($sql) or die(mysql_error());
                          
                                      echo 
                      '<table class="tabelle_error_site" border><tr style="color:white;"><th style="width:100px">ID</th><th>Meldung</th><th style="width:300px">Status</th></tr>';
                                          while(
                      $fetch mysql_fetch_assoc($query))
                                          {
                                              echo 
                      '<tr>';
                                              echo 
                      '<td style="width:100px; color:white; ">'.$fetch['id'].'</td>';
                                              echo 
                      '<td style="color:white; text-align:left">'.$fetch['meldung'].'</td>';
                                              echo 
                      '<td style="width:350px;"><span style="color:$POST['farbe']">'.$fetch['status'].'</span></td>';
                                              echo 
                      '</tr>';
                                          
                                          }
                       
                                      echo 
                      '</table></div>';

                      ?>

                      Kommentar


                      • #12
                        gdddddd

                        Kommentar


                        • #13
                          Glaubst du nicht das du mit der nicht-sql Variante besser zurecht kommen würdest?

                          Das mit den Farben (bei der dritten THEN '00ff00' fehlt übrigens das #-Zeichen) in dem Script direkt finde ich irgendwie hat was von inline-css... Ich würds eher zentral halten und eher so css klassen wie "open" "closed" und "inProgress" oder so anlegen und denen im css zentral eine Farbe geben. Aber ist halt auch Geschmacksache.

                          Und weil es (glaube ich) noch nicht erwähnt wurde. Du solltest mysql_ sowieso auf mysqli_ oder PDO umstellen, denn die mysql-Erweiterung wird bald nicht mehr funktionieren, weil dieses aus PHP rausfliegt (da veraltet). http://php.net/manual/en/mysqlinfo.api.choosing.php

                          LG
                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Zitat von hotcmiln Beitrag anzeigen
                            wie gesagt ich bin ein echter blutiger anfänger
                            Dann solltest du versuchen zu verstehen was du da machst, nicht einfach nur kopieren und hoffen dass es schon irgendwie klappen wird. Beschäftige dich mal mit den Grundlagen wie eine Datenbankabfrage aussehen muss.

                            mysql_query("SELECT status,
                            CASE status WHEN 'offen' THEN '#ff0000'
                            WHEN 'in Bearbeitung' THEN '#ff8000'
                            WHEN 'geschlossen' THEN '00ff00'
                            END AS farbe,");
                            Und weiter? Dass der Teil aus #6 dahin gehört wo die Spaltennamen im Query stehen schrieb ich schon - davon dass du alles was dahinter noch kommt (mindestens »FROM <tabelle>«) weglassen sollst habe ich nichts gesagt (und auch in #6 ist mit »...« angedeutet dass der Query noch nicht zu Ende ist)

                            mysql_close();
                            Lass das weg, die Verbindung wir am Ende des Scripts ohnehin geschlossen. Und warum steht deine alte Abfrage immernoch darunter? Und: die mysql_*-Funktionen sind veraltet, verwende mysqli oder PDO.

                            echo '<td style="width:350px;"><span style="color:$POST['farbe']">'.$fetch['status'].'</span></td>';
                            Lerne *bitte* zu verstehen was du da eigentlich machst - deine Daten aus der Datenbank stehen in $fetch, nicht in $POST (ganz davon zu schweigen dass das einen Syntaxfehler gibt).

                            Kommentar


                            • #15
                              ja das hattest du mir gestern in einem beitrag schon gesagt werde ich noch ändern. aber der wert ändert sich ja auf der seite da steht ja an einer stelle nicht immer offen sonder auch mal in bearbeitung oder geschlossen.

                              Kommentar

                              Lädt...
                              X