• Hallo zusammen,

    ich habe leider sehr wenig mit Webdesin zu tun gehabt und weiss nicht wie man das Aussehen eines Icons nach dem Anklicken ändern kann.
    Und zwar habe ich eine einfache webseite erstellt mit einem Bilder darauf start.jpg, wenn man das Bild anklickt, dann wird ein PHP-Script (start.php) gestartet, das wiederum ein Shell-Script ausführt :


    start.php :

    <?php

    $message=shell_exec("/var/www/start.sh 2>&1");

    print_r($message);

    header("Location:index.html");

    ?>

    Und so habe ich das Bild in index.html eingebunden :

    <div style="position:absolute; top:200px; left:100px;">
    <a href="start.php"><img src="start.jpg" with="100" height="100"></a>
    </div>


    Nun wie kann ich das Aussehen der Bildes nach dem Anklicken ändern, so dass man weiss, dass es bereits gedrückt wurde ?
    Es reicht, wenn z.B nach dem Anklicken ein Rahmen um Bild sichtbar wäre oder ähnliches ...

    Ich habe mehrere Scripte ausprobiert, aber leider ohne Erfolg, z.B. das PHP-Script in Javascript integrieren und dieses mit alert starten hat leidernicht funktioniert ...

    Ich hoffe, dass mir jemand helfen kann !

    Danke!

    Gruß
    manu

  • also zuerst mal bezweifle ich dass die header-weiterleitung funktioniert, wenn du vorher ne ausgabe hast ;)

    dann kannst du deinem link per css die visited pseudoklasse geben:

    HTML
    <div style="position:absolute; top:200px; left:100px;">
    <a class="meinelinks" href="start.php"><img src="start.jpg" with="100" height="100"></a>
    </div>


    css-code fürs style-tag

    Code
    .[B]meinelinks 
    {
    [B][B]     border: 3px solid transparent;[/B][/B]
    }
    .[B]meinelinks:visited
    {
         border: 3px solid red;
    }[/B][/B]


    das mit dem transparent vorher is als hack fürs boxmodell, weil sonst der link seine position verändern würde.
    und wenn du das bild verändern wollen würdest, dazu braucht es dann halt nen javascript oder du machst das auch per css, dafür solltest du dann aber das bild als hintergrundbild einbinden

  • Danke für deine Antwort !

    Also nach dem Anklicke wird das Script gestartet aber leider sieht man kein "border", keine Veränderung !

    <html>
    <body>

    <div style="position:absolute; top:200px; left:100px;">
    <a class="meinelinks" href="start.php"><img src="start.jpg" with="100" height="100"></a>
    </div>

    </body>

    <style type="text/css">
    .meinelinks
    {
    border: 3px solid transparent;
    }
    .meinelinks:visited
    {
    border: 3px solid red;
    }
    </style>

    </html>


    Gruß
    manu


    also zuerst mal bezweifle ich dass die header-weiterleitung funktioniert, wenn du vorher ne ausgabe hast ;)

    dann kannst du deinem link per css die visited pseudoklasse geben:

    HTML
    <div style="position:absolute; top:200px; left:100px;">
    <a class="meinelinks" href="start.php"><img src="start.jpg" with="100" height="100"></a>
    </div>


    css-code fürs style-tag

    Code
    .[B]meinelinks 
    {
    [B][B]     border: 3px solid transparent;[/B][/B]
    }
    .[B]meinelinks:visited
    {
         border: 3px solid red;
    }[/B][/B]


    das mit dem transparent vorher is als hack fürs boxmodell, weil sonst der link seine position verändern würde.
    und wenn du das bild verändern wollen würdest, dazu braucht es dann halt nen javascript oder du machst das auch per css, dafür solltest du dann aber das bild als hintergrundbild einbinden

  • Das wird auch nicht klappen. In dem Augenblick, wo das visited eigentlich greifen könnte, ist die start.php geladen worden, in der die CSS-Definition nicht greift.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • Ich verstehe deine Eingangsfrage schon nicht. Oder ich bin heute total neben der Spur, was ja auch möglich ist.

    Du hast einen Link verbunden mit einem Bild. Wenn du das Bild, also den Link anklickst, soll das Bild anders aussehen, angezeigt werden? Wie soll das denn gehen, wenn inzwischen eine neue Datei geladen wurde und das Bild nicht mehr im Fenster sichtbar ist? Ich denke dein Infos sind zu wenig.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • ich vermute mal, dass der User wieder zur Index.html zurück geht und dann der Link anders eingefärbt wird. Wenn dem so ist, dann muss die index.html zu index.php umbenannt werden. So könnte man in der start.php eine Variable mitgeben, die dann in der Index.php ausgewertet wird.
    Oder du machst es mit include().
    Nur ein spontaner Gedanke.

    Einmal editiert, zuletzt von djheke (18. März 2015 um 19:11)

  • Also das Bild ist ein start-Button in .jpg-Format, was ich mir mit wget heruntergeladen habe, dieses Bild verschwindet nach dem Anklicken nicht !
    Der Hintergrund ist, dass man nicht aus Versehen mehrmals auf das Bild anklickt und somit mehrere Prozesse startet.

    Wenn man das Bild anklickt und dann z.B. ein gepunkteter Rahmen oder ein Border um Bild herum zu sehen ist, dann weiss man, dass das Script bereits gestartet wurde !

    Das was ich suche würde so aussehen, allerdings statt Button möchte ich das mit einem Bild/Image realisieren und dabei soll das Php-script gestartet werden :
    Ich hoffe, ich habe mich verständlich ausgedrückt :)


    <html>
    <head>
    <style type="text/css">
    <!--

    button {
    border: medium solid darkgreen;
    background-color: darkgreen;
    color: white;
    }

    button:focus {
    border: medium dotted white;
    }

    button:active {
    border: medium dotted red;
    }

    -->
    </style>
    <title>Überschrift der Webseite</title>
    </head>
    <body>

    <button>Abschicken</button>

    </body>
    </html>

  • neee gastl, neben der spur biste nich, nur ich war heut früh nich ganz zurechnungsfähig..^^
    hab den href gar nich beachtet und vermutet es sei nur nen inpage-link gewesen :)

    edit: aber wenn ich so drüber nachdenke, wieso es nich geht...
    schick mal den code aus der start.php :D

    Einmal editiert, zuletzt von synaptic (18. März 2015 um 20:31)

  • Hast du noch nie bei einer Software (z.B. Backup) und damit meine ich die grafische Oberfläche, auf ein Button/Knopf geklickt und dabei änderte sich die Farbe/Umrandung des Buttons/Knopfes ?!

    So wird dem User visuell signalisiert, dass der Button aktiviert wurde, im Hintergrund wird doch immer ein Programm/Script gestartet ?!

    Vielleicht funktioniert das nur dann, wenn man den Button selber erstellen würde, keine Aghnung .....

  • Wie so ein Knopf aussieht wissen wir. Ich denke mit Vorhaben ist dein Ziel gemeint. Wie sieht dein Quellcode aus? Ein Onlinelink wäre hilfreich.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • styleshiet
    Wie soll ich das Bild in PHP-Script ändern ?


    Gastl @ djheke
    Also ich mache es noch einfacher und zwar angenommen, man klickt auf das Bild und es wird das unten stehende PHP-Script gestartet und das war's, dieses einfache PHP-Script erzeut in /var/ww eine Datei und fertig !


    index.html :

    <html><body>

    <div style="position:absolute; top:120px; left:500px;">
    <a href="start.php"><img src="start.jpg" with="280" height="280"></a>
    </div>

    </body>
    </html>


    start.php :

    <?php

    shell_exec ("touch /var/www/datei.info");

    header("Location:index.html");

    ?>

  • ob du es glaubst, oder net..^^
    aber ich finds noch immer skurril :D
    bei knopfdruck per shell nen touch auf ne .info-file

    ok ich gehe jetzt einfach mal davon aus, dass des nur beispielhaft is.

    machs über die session.

    nenn die index.html index.php
    schreib

    PHP
    session_start();

    in beide dateien ganz oben rein.

    in die start.php schreibste zusätzlich noch

    PHP
    $_SESSION['geklickt'] = true;

    und in die index.php machste so dann den link-aufruf:

    PHP
    <?php
    $linkgeklicked = false;
    if(isset($_SESSION['geklickt']) && !empty($_SESSION['geklickt'])){
    $linkgeklicked = $_SESSION['geklickt'];
    }
    ?>
    <div style="position:absolute; top:120px; left:500px;">
    <a href="start.php" class="<?php echo ($linkgeklicked ?  'geklickt' : null); ?>"><img src="start.jpg" with="280" height="280"></a>
    </div>


    und im css:

    Code
    [B]a
    {
    [B][B]     border: 3px solid transparent;[/B][/B]
    }
    a.[B]geklickt[/B][B]
    {
         border: 3px solid red;
    }[/B][/B]

    das bleibt dann so lange erhalten, bis die session ausgelaufen is (im regelfall, wenn man den browser wieder geschlossen hat)

  • synaptic
    Danke für deine Antwort !

    Ich bekomme das leider nicht hin :(

    Ich habe index.htm in index.php umbennant. Nach dem Anklicken springt die seite auf index.html, egal wie ich den Code ändere, es klappt einfach nicht .... Bitte um Hilfe !


    Start.php:

    <?php

    session_start();

    $_SESSION['geklickt'] = true;

    shell_exec ("touch /var/www/go.info");

    header("Location:index.html");

    ?>


    index.php:

    <?php

    session_start();
    ?>

    ODER muss man session_start(); unten eingeben ?


    <?php

    session_start();


    $linkgeklicked = false;
    if(isset($_SESSION['geklickt']) && !empty($_SESSION['geklickt'])){
    $linkgeklicked = $_SESSION['geklickt'];
    }
    ?>


    <div style="position:absolute; top:120px; left:500px;">
    <a href="start.php" class="<?php echo ($linkgeklicked ? 'geklickt' : null); ?>"><img src="start.jpg" with="280" height="280"></a>
    </div>



    <style type="text/css">
    a
    {
    border: 3px solid transparent;
    }
    a.geklickt
    {
    border: 3px solid red;
    }
    </style>


  • quelle:
    http://rs2img.memecdn.com/facewall_o_443018.jpg

    PHP
    header("Location:index.html");


    muss wohl schon:

    PHP
    header("Location:index.php");


    werden!!!

    wieso wollen alle, die nichma ne mauer bauen können direkt das höchste gebäude des universums bauen?
    wenn man die grundlagen nicht beherrscht, sollte man den auftrag weggeben und dafür was zahlen.
    ich warte mein auto ja auch nich und schreibs dann wie ne wartung von ner vertrags-/fachwerkstatt mit stempel ins buch.
    es gibt dinge, die sollte man einfach sein lassen, wenn man keine ahnung hat, eins davon sind systemaufrufe per php, wenn man von beidem 0 ahnung hat!

    Einmal editiert, zuletzt von synaptic (19. März 2015 um 12:45)