dynamischer Balken

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

  • dynamischer Balken

    hallo leute,

    ich bin gerade dabei in voiting-formular zu basteln.
    das ganze läuft über eine datenbank.
    lauft soweit alles ganz gut. auch das auswerten der abstimmungen
    ist schon fast fertig.
    nun möchte ich die abgegeben stimmen auch noch grafisch darstellen.
    das heißt, ich speichere die stimmenanzahl in einer zelle und teile sie durch
    die anzahl der abgebene stimmen. dabei kommt ein durchschnittswert
    heraus. diesen möchte ich nun so darstelllen, das je nach dem wieviele punkte eine frage bekommen hat, der blaken länger oder kürzer sit.
    weis jeman wie man das angeht oder wo mann eine touturial für sowas
    bekommt.

    danke schon mal im voraus.

  • #2
    bewertung 100%:
    Code:
    <div style="width:200px;">&amp;nbsp;</div>
    bewertung 50%:
    Code:
    <div style="width:100px;">&amp;nbsp;</div>
    bewertung 10%:
    Code:
    <div style="width:20px;">&amp;nbsp;</div>
    bewertung 1%:
    Code:
    <div style="width:2px;">&amp;nbsp;</div>
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      so wie das aussieht, geht das nur statisch? Dynamisch ist da wohl nichts zu machen, oder.

      zu steuern das ganze dann über if-abfrage?

      Kommentar


      • #4
        wieso sollte das nicht dynamisch gehen. du brauchst doch nur eine zahl zu ändern. wo ist das problem?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          habe es noch nie gemacht

          das problem ist, das ich sowas noch nie gemacht habe.
          gibt es hierzu keine anleitung dazu.

          das ganze sollte dann so aussehen wie bei der umfrage hier im forum.

          Kommentar


          • #6
            aber mit php kannst du schon umgehen ... oder?

            dann sollte es kein problem sein.

            kannst du das nciht, solltest du bei http://www.schattenbaum.net/php ein wenig stöbern und lernen.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Wenn du weißt, dass 1% 2px sind, dann weißt du auch, dass 7% 14px sind.

              Das heißt, du musst mit PHP einfach nur ausrechnen, wieviel Prozent der Stimmen denn nun auf eine Antwort entfallen.

              Dann musst du das ganze mit dem Faktor für 1% multiplizieren

              (Beispiel:

              37% würde dann so aussehen

              PHP-Code:

              $wert_mit_variablen 
              37// muss halt dann dynamisch generiert werden
              $faktor 2// eintragen wie groß halt 1% sein soll....

              $wert_mit_variablen $wert_mit_variablen *$faktor;

              echo 
              "<div style=\"width:".$wert_mit_variablen."\"> &nbsp;</div>"
              Wo ist da das Problem?)
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                so wie das aussieht, geht das nur statisch? Dynamisch ist da wohl nichts zu machen, oder.
                da sich die bewertung und die länge des streifens proportional verhalten, kannst du ihren zusammenhang in einer linearen funktion ausdrücken, y = mx + n.

                aus zwei punkten, günstigerweise die punkte bei 0% und 100%, also p1(0, 0) und p2 (100, {gewünschte max-länge deines streifens}).

                m = (y2-y1)/(x2-x1) = {gewünschte max-länge deines streifens}/100
                n = 0 (aus p1)

                y = {gewünschte max-länge deines streifens}/100 * x

                länge des streifens =
                {gewünschte max-länge deines streifens}/100 *
                x%

                angenommen, {gewünschte max-länge deines streifens} = 500px
                100% = 500px;
                50% = 250px;
                27,12% = 135,6px;
                1% = 5px;

                angenommen, {gewünschte max-länge deines streifens} = 120px
                100% = 120px;
                50% = 60px;
                27,12% = 32,544px;
                1% = 1,2px;
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  danke

                  danke
                  ich hatte viel zu kompliziert gedacht. so wie der letzte es beschrieben hat, habe ich das problem vom ansatz her gelöst.
                  ich hätte nur eine denkanstroß gebraucht.

                  trotzdem danke an alle

                  Kommentar


                  • #10
                    Re: danke

                    ihr denkt m.E. alle noch zu kompliziert.
                    element einfach in einen container mit gewünschter breite packen, die 100% entsprechen soll, und innerhalb diesem dann die balken anlegen, mit breitenangaben gleich in prozent, ganz ohne umrechnung in pixel :-)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      meine art

                      ich mach das ganze nun einfach so:

                      den bereits erechneten werden mit round auf eine ganze zahl runden und den als pixelbreite ins width einbinden. fertig

                      ein kleines beispiel:
                      width="<?php echo round($ergebins);?>

                      Kommentar

                      Lädt...
                      X