Alex: Problem

Hallo!

Ich habe folgendes Problem:

Ich möchte auf meiner HP ein kleines Tool veröffentlichen, mit dem man farbige Scrollbars erstellen kann. Ich habe es wie folgt umgesetzt: Oben kann der User für die einzelen CSS-Attribute den Farbcode in ein Textfeld eingeben. Die Farbcode werden in einzelnen Variablen gespeichert. Wenn der User jetzt auf den submit-Button klickt, soll sich ein Textfeld unter dem Formular einfärben.

Wie mache ich es, dass die Variablen im gleichen Dokument nach klick auf den Button weitergegeben werden?

Danke!

Alex

  1. Hoi

    Wie mache ich es, dass die Variablen im gleichen Dokument nach klick auf den Button weitergegeben werden?

    Wenn Du's mit PHP machen willst, mußt Du die komplette Seite neu laden und dann halt serverseitig das entsprechende Feld einfärben.

    Ich würd's mit JavaScript machen und <form onSubmit="document.getElementById('feldname').style.backgroundColor='#FAABEE'; return false;">

    Ciao,

    Harry

  2. Hallo,

    Wie mache ich es, dass die Variablen im gleichen Dokument nach klick auf den Button weitergegeben werden?

    Gib die Werte an dasselbe Dokument ($PHP_SELF) weiter und reagiere dann entsprechend darauf. Hier mal ein grober Ansatz:

    <?php
    if(empty($sac))$sac="#FFF";
    if(empty($sbc))$sbc="#090";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Test by TM 06/02</title>
    </head>
    <body>
    <form action="<?=$PHP_SELF;?>" method="post">
    scrollbar-arrow-color: <input type="text" name="sac" value="<?=$sac;?>"><br>
    scrollbar-base-color: <input type="text" name="sbc" value="<?=$sbc;?>"<br>
    <input type="submit" value="Farben zuweisen"><br>
    <textarea cols="50" rows="5" style="scrollbar-arrow-color: <?=$sac;?>; scrollbar-base-color: <?=$sbc;?>;">Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... Das ist ein Testtext ... </textarea>
    </form>
    </body>
    </html>

    Mit JavaScript ist das ebenfalls machbar, siehe http://www.styleassistant.de/tips/beispiel31.htm. Hier werden fest verdrahtete Farben verwendet, was aber am Prinzip nichts aendert.

    MfG, Thomas

    1. Hallo!

      Irgenwie bekomme ich mit diesem Tag den Fehler Parse error: parse error, expecting T\_VARIABLE' or '$'. Woran liegt es?

      <textarea style="scrollbar-base-color:#<?=$1;?>; scrollbar-3dlight-color:#<?=$2;?>; scrollbar-arrow-color:#<?=$3;?>; scrollbar-darkshadow-color:#<?=$4;?>; scrollbar-face-color:#<?=$5;?>; scrollbar-highlight-color:#<?=$6;?>; scrollbar-shadow-color:#<?=$7;?>; scrollbar-track-color:#<?=$8;?>;" name="textfield" cols="50" rows="10"></textarea>

      1. Hallo,

        Irgenwie bekomme ich mit diesem Tag den Fehler Parse error: parse error, expecting T\_VARIABLE' or '$'. Woran liegt es?

        <textarea style="scrollbar-base-color:#<?=$1;?>;

        Variablennamen duerfen nicht mit einer Ziffer beginnen!

        MfG, Thomas

        1. Klappt jetzt! Wieder was dazugelernt!

          Danke!

          Alex

        2. Eine kleine Frage hätte ich noch:

          Könnte ich mit diesen "internen Variablen" auch if-Abfragen durchführen oder so? Wie würde das aussehen?

          Alex

          1. Hallo,

            Könnte ich mit diesen "internen Variablen" auch if-Abfragen durchführen oder so? Wie würde das aussehen?

            Das ist doch nur eine verkuerzte Schreibweise.
            <?=$abc;?> ist identisch zu <?print $abc;?>, also kannst Du auch beliebigen anderen Code dort einbringen.

            <?if(empty($abc))$abc='#000';print $abc;?>

            MfG, Thomas

  3. Moin!

    Ich möchte auf meiner HP ein kleines Tool veröffentlichen, mit dem man farbige Scrollbars erstellen kann. Ich habe es wie folgt umgesetzt: Oben kann der User für die einzelen CSS-Attribute den Farbcode in ein Textfeld eingeben. Die Farbcode werden in einzelnen Variablen gespeichert. Wenn der User jetzt auf den submit-Button klickt, soll sich ein Textfeld unter dem Formular einfärben.

    Ich will dich ja nicht enttäuschen oder deine Idee schlechtreden, aber dennoch: Es gibt im CSS-Standard keine farbigen Scrollbalken. Und auch Microsoft ist von dem Gedanken wieder ab - Farbige Scrollbalken gibts nur im IE 5.0 und 5.5, die neueste Version 6.0 zeigt sie nur noch dann an, wenn die Seite im Quirks-Modus angezeigt wird - der hat aber gewisse Nachteile. Besser ist der Standard-Modus, weil damit gewisse Dinge endlich gemäß der Festlegung des W3C und übereinstimmend mit allen anderen Browsern gerendert werden.

    Wenn du CSS-Eigenschaften ändern willst, gibst du dem zu ändernden Element am besten eine ID und greifst mit getElementById darauf zu. Die CSS-Eigenschaften heißen in Javascript genauso wie im CSS (alles Kleinbuchstaben) mit einer Ausnahme: Wenn ein CSS-Wort mit Bindestrich geschrieben wird, wird das Wort in Javascript ohne Bindestrich, dafür mit Großbuchstabe geschrieben. Beispiel:

    CSS: background-color
    JS:  backgroundColor

    Insgesamt:
    document.getElementById("deineID").style.backgroundColor = "#FFFF00"
    wäre gleichbedeutend mit folgendem CSS:
    #deineID { background-color:#FFFF00; }

    Bedenke: Nicht alle Browser kennen schon getElementById (Netscape 4, IE 4). Du solltest zur Vermeidung von Fehlern den Code nur ausführen, wenn der Browser diese Methode kennt: if (document.getElementById) {...} Da die alten IEs keine Farbscrollbalken kennen, ist eine document.all-Methode nicht notwendig.

    Weiterhin solltest du natürlich prüfen, ob deine gewünschte CSS-Eigenschaft javascriptseitig auch existiert, sonst gibts vielleicht ebenfalls Fehler. Die Methode ist die gleiche.

    - Sven Rautenberg