+ Antworten
Ergebnis 1 bis 15 von 15

Thema: Grafischen Button mit PHP-Value Übergabe

  1. #1
    TP-Junior mori macht alles soweit korrekt
    Registriert seit
    Jun 2004
    Beiträge
    28

    Grafischen Button mit PHP-Value Übergabe

    Ich würde gerne statt eines normalen Buttons einen Grafischen Button verwenden.
    Der dritte Button, um den es hier geht, soll ermöglichen, die getätigten Formulareinträge
    (wie hier im Forum) in einer Vorschau anzusehen.
    Das funktioniert ja auch (als Submit Button), ich wollte aber lieber
    eine schöne Grafik dafür verwenden.

    Hier der Code:

    PHP-Code:
    echo "<input value=\"Eintragen\" tabindex=\"6\" class=\"sub\" type=\"submit\">  

    <input  type=\"reset\" class=\"sub\" tabindex=\"7\" value=\"Zur&uuml;cksetzen\" />

    <input name=\"show\" tabindex=\"8\" value=\"Vorschau\" class=\"subV\" type=\"submit\">"
    ;

    // Ein Lösungsversuch war: aus den dritten Submit einen grafischen Button zu machen

    echo "<input name=\"show\" tabindex=\"8\" value=\"Vorschau\" class=\"subV\" type=\"image\" src=\"../../grafiken/elemente/auge.jpg\">"
    Wenn ich diesen letzten Button (type=\"image\") verwende, wird die Übergabe der Value wahrscheinlich nicht interpretiert, php tut dann so, als wäre es ein Absendebutton.

    Irgendeine Idee, für Tipps wäre ich sehr dankbar.

    Klaus

  2. #2
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Was hat das bei den Traum_Dynamikern zu suchen?

    Du kannst ein ganz normales submit-Button doch einfach mit CSS gestalten. Getestet hab ich es jetzt nicht, aber Du könntest z.B. die Ränder entfernen und Dein Bild einfach als Hintergrundbild einsetzen.
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  3. #3
    TP-Senior SkaTeR macht alles soweit korrekt
    Registriert seit
    Oct 2003
    Ort
    NRW
    Beiträge
    174
    Oder per onclick="this.form.submit();"
    Ungetestet.

  4. #4
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    JS = Böse, weil es nicht mehr geht, falls es abgeschaltet ist
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  5. #5
    TP-Junior mori macht alles soweit korrekt
    Registriert seit
    Jun 2004
    Beiträge
    28
    Hallo Boris, Sorry es tut mir Leid hier falsch positioniert zu sein, warum eigentlich?
    Meine Frage bezieht sich nicht allgemein zu Buttons, es ist eine direkte Frage zu PHP.
    Den Übergaben von Werten oder eine alternative zu normalen Submit Buttons innerhalb eines PHP Eingabeformulars zu finden.

    Die Idee mit dem Hintergrund, habe ich auch schon gehabt, es funktioniert aber nicht so gut, dieses Thema passt aber nun wirklich nicht in dieses Forum.

  6. #6
    TP-Specialist Schneeschaufel hilft, wo's geht Schneeschaufel hilft, wo's geht Schneeschaufel hilft, wo's geht Schneeschaufel hilft, wo's geht Avatar von Schneeschaufel
    Registriert seit
    Mar 2002
    Ort
    Vienna, Austria, Austria
    Beiträge
    2.042
    Mit $_GET['Vorschau'] vielleicht...?

  7. #7
    TP-Specialist rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE Avatar von rewboss
    Registriert seit
    Mar 2005
    Ort
    Unterfranken
    Beiträge
    2.639
    Also, du willst einen Button, der etwas anders macht, als abschicken, und du willst ein Bild drauf haben.

    Nun, <input type="image"> ist immer ein Submit-Button. Geht also nicht... oder vielleicht doch?

    Doch, denn es gibt <button>. Anders als <input> braucht <button> einen End-Tag. Was zwischen <button> und </button> kommt ist das, was auf dem Button erscheinen soll -- Text oder Bild, egal. Anstatt zum Beispiel

    <input type="button" value="Vorschau" onclick="vorschau();" />

    schreibt man

    <button type="button" onclick="vorschau();">Vorschau</button>

    ...oder eben:

    <button type="button" onclick="vorschau();"><img src="vorschaubild.gif" /></button>

    Es gibt für <button> auch type="submit" und type="reset".

    Ich bin mir nicht sicher, wie viele Browser <button> auch implementieren, aber soweit ich weiß ist es W3C-Standard. Probier's doch aus.

  8. #8
    TP-Junior mori macht alles soweit korrekt
    Registriert seit
    Jun 2004
    Beiträge
    28
    Danke ich habe beide Tipps mal getestet, kommen aber noch Fehlermeldungen.

    1. über $_GET['Vorschau'] (Schneeschaufel), da passierte leider nicht, na vielleicht habe ich ja auch noch was falsch gemacht.

    2. <button type="button" onclick="vorschau();"><img src="vorschaubild.gif" /></button> (von newboss) da gab es noch Javascript Fehler

    Danke noch einmal, ich versuche es noch einmal anders umzuschreiben

    Klaus
    Geändert von mori (07.05.2005 um 21:20 Uhr)

  9. #9
    TP-Specialist Schneeschaufel hilft, wo's geht Schneeschaufel hilft, wo's geht Schneeschaufel hilft, wo's geht Schneeschaufel hilft, wo's geht Avatar von Schneeschaufel
    Registriert seit
    Mar 2002
    Ort
    Vienna, Austria, Austria
    Beiträge
    2.042
    get geht ja nur, wenn das Formular auch über get verschickt wird.
    Ansich ist es wurst, du musst eben nur einen der beiden Buttons abfangen, dann kannst du ja, egal welcher gedrückt wird, die Daten rauszupfen.
    Irgendwie so in der Art?
    PHP-Code:
    <?php
    if(isset($_POST['speichern'])){
     echo 
    "Daten werden gespeichert:<br>".$_POST['test1']."<br>".$_POST['test2'].""
    }
    if(isset(
    $_POST['vorschau'])){
     echo 
    "Vorschau:<br>".$_POST['test1']."<br>".$_POST['test2'].""
    }
    ?>
     

    <html>
    <form method="post" action="<?=$_SERVER['PHP_SELF']?>">
    <input type="text" name="test1"><input type="submit" value="speichern" name="speichern"><br>
    <input type="text" name="test2">

    <input type="submit" value="Vorschau" name="vorschau">
    </form>
    </html>

  10. #10
    TP-Junior mori macht alles soweit korrekt
    Registriert seit
    Jun 2004
    Beiträge
    28
    Danke Schneeschaufel,
    ich werde das Script morgen einmal in Ruhe ausprobieren, bin schon sehr gespannt. Ich werde das Ergebnis hier noch einmal posten.

    Tschau
    Klaus
    Geändert von mori (07.05.2005 um 23:04 Uhr)

  11. #11
    TP-Specialist rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE Avatar von rewboss
    Registriert seit
    Mar 2005
    Ort
    Unterfranken
    Beiträge
    2.639
    Zitat Zitat von mori
    2. <button type="button" onclick="vorschau();"><img src="vorschaubild.gif" /></button> (von newboss) da gab es noch Javascript Fehler
    Ja, kein Wunder, es gibt noch keinen JavaScript-Befehl vorschau(). Den musst du selbst schreiben -- das war nur ein Beispiel, wie man einen grafischen Button erstellen kann, der kein Submit-Button ist.

    Nachdem ich ins Bett gegangen war, fiel mir dann Schneeschaufels Lösung ein. Eigentlich willst du ja das Formular abschicken, nur je nach dem, welcher Button betätigt wurde, passiert nun mal was anderes. Du brauchst also zwei Submit-Buttons, aber der Skript soll erkennen, welche Submit-Button betätigt wurde.

    So lange jeder Button einen anderen Namen erhält, kann sie der Skript auseinanderhalten, so wie in Schneeschaufels Beispiel. Wenn das grafische Buttons sein sollen, kannst du entweder die Lösung mit <input type="image"> oder die mit <button type="sumbit"><img></button> verwenden. <button><img></button> sieht anders aus als <input type="image">.

    Übrigens: mit <input type="image"> werden die Koordinaten des Cursors gleich mitgeschickt, und zwar in der Form name.x=n&name.y=m. Zum Beispiel: vorschaubutton.x=34&vorschaubutton.y=21. So kannst du mehrere Buttons in einer Bilddatei haben...

  12. #12
    TP-Junior mori macht alles soweit korrekt
    Registriert seit
    Jun 2004
    Beiträge
    28
    Danke erst einmal für die Tipps und Anregungen. Also ich habe mich noch weiter im Internet informiert und umgehört.

    Mein Problem mit dem Script ist wohl folgendes:

    Das Script ist mit "register_globals auf on" angelegt. Es funktioniert auch nur so, ich habe mich immer gewundert, wenn ich versucht hatte mein Script auf "off" zu stellen, dass ich ständig Fehlermeldungen bekomme. Wobei ich als PHP Anfänger durchaus was falsch gemacht haben kann.

    Ich habe jetzt einmal meine PHP.INI im Server auf off gestellt und schon stellt sich das Script aus. Es werden keine Variablen mehr übergeben.


    Eine Info aus phpforum.de:

    .. Seit PHP 4.2.0 ist per Default dieser Wert auf off gesetzt, und wenn man bedenkt, dass diese Version am 22.April 2002 veröffentlich..
    Also muss ich mir das Script umbauen, für mich als PHP Anfänger ein kleiner
    Horror (grins)

    PHP-Code:

    function form () { 
    global 
    $PHP_SELF


    //kann man die Variablen so übergeben? 

    global $_POST[name]; 
    global 
    $_POST[ort]; 
    global 
    $_POST[text]; 
    global 
    $_POST[home]; 
    global 
    $_POST[mail]; 
    global 
    $_POST[back]; 
    global 
    $_POST[title2]; 



    echo 
    "<h1>$title2</h1>"

    // vorher sah das Tag so aus: 

    echo "<form action=\"$PHP_SELF?show=data\" method=\"post\">"

    // wie bekomme ich das Tag für den Form Bereich  auf off? 

    echo "<form action=\" $GLOBALS['PHP_SELF'] \" method=\"post\">"

    //oder so?

    echo "<form action=\"$_SERVER['PHP_SELF'] \" method=\"post\">"
    Klaus

  13. #13
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    sorry, aber das schreit nach einer Grundstudie "Einführung in PHP".

    Du kannst Dir erstmal mit folgendem Schnipsel helfen, es wandelt die Variabeln wieder um, so das Dein Script funktioniert:

    PHP-Code:
    if(ini_get('magic_quotes_gpc')) {
        foreach(
    $_POST as $postvar => $postval){ ${$postvar} = stripslashes($postval); } 
        foreach(
    $_GET as $getvar => $getval){ ${$getvar} = stripslashes($getval); }
    } else {
        foreach(
    $_POST as $postvar => $postval){ ${$postvar} = $postval; } 
        foreach(
    $_GET as $getvar => $getval){ ${$getvar} = $getval; }


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  14. #14
    TP-Junior mori macht alles soweit korrekt
    Registriert seit
    Jun 2004
    Beiträge
    28
    Hallo St@eff.en,

    so so, dass schreit also nach einer Grundstudie "Einführung in PHP".

    Wie war, wie war und so soll es auch sein.. (grins)

    Also, ich muss als erstes mir noch einmal genauer anlesen- damit ich das
    einmal richtig begreife, was register_globals auf ON or OFF genau soll.
    Gut ich habe verstanden, dass es was mit Sicherheit gegen Missbrauch
    bezogen auf den vergebenen Variablen zu tun hat, also so in etwa?!

    Was ich aber dann überhaupt nicht verstehe, ist warum nicht gleich alles
    richtig eingestellt wird. Das ein PHP Programmierer aus Unwissenheit ein Script
    falsch anlegt ist das eine aber was für mich völlig unverständlich ist, warum
    z.b. mein Webserver alles auf „ON“ gestellt hat, wenn es doch anders rum besser ist,
    denn das habe ich gerade erfahren.

    Eine Sache würde ich hier noch gerne wissen, wenn mein Webserver „register_globals auf on“
    gestellt hat und man diesen Eintrag dort nicht ändern kann und das Script auch nur richtig funktioniert,
    wenn alles auf „ON“ gestellt ist. Macht es den überhaupt einen Sinn, es so umzuschreiben,
    dass „register_globals auf OFF“ gestellt ist?

    Was meint ihr?

    Klaus

  15. #15
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Weil es "damals" die Option nicht gab, die register_globals abzuschalten. Als aber gemerkt wurde, welche Sicherheitsrisikos damit möglich waren, wurde es eingeführt.

    Mittlerweile (hat Jahre gedauert!) schalten die Webhoster die register_globals nach und nach ab, was eine gute Idee ist. Insofern sollte man eigentlich schon seit längerem mit den Superglobals arbeiten, und nicht nur simpel mit den Variablennamen. Ist nicht nur sicherer, sondern auch einfach sauberer, weil man so weiß, woher die Variable überhaupt kommt ($_POST, $_GET, $_COOKIE, $_SESSION, $_REQUEST, $_SERVER ...).
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51