<input type="image"

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

  • <input type="image"

    hallo
    auf der webseite www.dnarts.ch/test habe ich eine shoutbox in die site eingefügt. sie funktioniert mit einer mysql datenbank soweit einwandfrei.
    da diese, meiner ansicht nach unschönen, standard buttons mein layout versauen möchte ich gerne für den submit button ein eigenes bild verwenden. also der "normale" button <input type="submit"> und auch <button type="submit"><img src="post.gif"></button> (so ist es zur zeit auf der site) kommen für mich nicht in frage.
    gesagt, getan... <input type="image" src="post.gif">
    die ernüchterung folgte dann, als die shoutbox bzw. dieser button dann mit dieser lösung nicht funktionierte.
    ich habe dann in verchiedenen php foren recherchiert und festgestellt, dass ich bei weitem nicht der einzige bin, der ein problem mit dem eigenen bild für den submit button hat. leider konnte ich auch keine für mich brauchbare lösung finden, zumal ich ein absoluter anfänger in sachen php bin. mit informationen wie: "beim klickenauf den button wird die position(x,y) des cursors auf dem bild mitgegeben" etc. kann ich leider nix anfangen.
    ich schätze mal, dass dies ein grundsätzliches problem und verzichte auf pasten des codes. solltet ihr trotzdem den code brauchen bitte posten.

    vielen dank schon mal für allfällige hilfe

  • #2
    die ernüchterung folgte dann, als die shoutbox bzw. dieser button dann mit dieser lösung nicht funktionierte.
    nicht funktionierte? was geht nicht?

    hatte noch nie probleme mit
    Code:
    <input type="image" src="button.gif" />
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      das posten!

      das posten funktioniert nicht. die daten werden auch nicht in die mysql datenbank geschrieben und somit erscheint der text auch nicht in der shoutbox. siehe www.dnarts.ch/test2
      ist genau das selbe wie www.dnarts.ch/test, nur dass ich eben <input type="image"> verwendet habe und somit beim klicken auf "posten" nix passiert.

      Kommentar


      • #4
        Re: das posten!

        das posten funktioniert nicht. die daten werden auch nicht in die mysql datenbank geschrieben
        sag doch, daß du anfänger bist

        wird das formular abgeschickt?
        was kommt dort an, wo du das formular verarbeitest?
        mal
        PHP-Code:
        print_r($_POST); 
        versucht?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          hm warums nicht geht kann ich nicht sagen aber ersetz doch einfach mal
          PHP-Code:
          <input type="image" src="images/btn-posten.gif" name="sbox_submit" value="&nbsp;POST&nbsp;"
          durch
          PHP-Code:
          <a href="javascript:this.form.submit()"><img src="images/btn-posten.gif" name="sbox_submit" width=58 height=17 border=0 alt="posten"></a
          erfüllt ja den gleichen Zweck wenns funktioniert.

          btw: bei image inputs muss kein value mitgegeben werden.

          mfG
          CMS-X Medien- und Modelagentur

          Kommentar


          • #6
            erfüllt ja den gleichen Zweck wenns funktioniert.
            ja, das type="image" funktioniert aber genauso, ohne js sogar.
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              danke

              danke für eure hilfe soweit. zumindest weiss ich jetzt mehr als vorher. danke "derHund" für den print_r($_POST); - tip. ich hab diese ausgabe bei beiden beispielen eingebaut und online gestellt. bitte anschauen unter:
              www.dnarts.ch/test
              www.dnarts.ch/test2 (mit <input type="image")
              die ausgabe fällt tatsächlich unterschiedlich aus. bei type submit werden "nur" die formular daten übergeben
              PHP-Code:
              Array ( [sbox_name] => alex [sbox_bla] => testcomment [sbox_submit] =>  ) 
              bei type image wird zusätlich die position des klicks auf den button mitgegeben und die ausgabe sieht so aus:
              PHP-Code:
              Array ( [sbox_name] => alex [sbox_bla] => testcomment [sbox_submit_x] => [sbox_submit_y] => 16 
              diese zusätzlichen angaben im array führen irgendwie dazu, dass die daten nicht in die mysql datenbank geschrieben werden. keine ahnung wie ich das lösen könnte. bitte um hilfe.

              Kommentar


              • #8
                hmm,

                zeigt doch mal den code, der das submit verarbeitet, dort prüfst du doch sicher die gegebenheiten, und die ham sich nun mal geändert ...

                du könntest:
                - nen hidden field setzen, das die aktion speichert, ...

                oder:
                - dort wo du sbox_submit prüfst, auf sbox_submit_x etc umsteigen ...

                ohne code kann ich dir nix sagen ...
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  das problem bei solchen grafischen button ist. das die keine "value" übergeben

                  bei type="button" value="submit" name="submit"

                  machen viele

                  if(isset($_POST['submit']) {
                  //insert into DB ...
                  }


                  das funzt bei grafischen buttons nicht, da müsstet ihr dann mit hidden feldern arbeiten.
                  thx Mukraker

                  Kommentar


                  • #10
                    hidden filed?

                    n hidden filed das die aktion speichert? wie geht das konkret? um mich in aus meinem obersten posting zu zitieren:"ich bin ein absoluter php anfänger"... und bin für jede hilfe dankbar.
                    hier noch der code für die verarbeitung des "submit":
                    PHP-Code:
                    ### Formular auswerten
                    if ($_POST["sbox_submit"])
                    {
                     
                    $sbox_name trim($_POST["sbox_name"]);
                     
                    $sbox_bla trim($_POST["sbox_bla"]);

                     if (!
                    $sbox_name or !$sbox_bla or $sbox_name == 'Name' or $sbox_bla == 'Text')
                        
                    $sbox_output "Name u. Text eingeben";
                     else
                     {
                      if (
                    $sbox_lock == 0)
                      {
                       
                    $sbox_check 0;
                       
                    ### Eintrag zu lang
                       
                    if (strlen($sbox_bla) > $sbox_maxlength or strlen($sbox_bla) > 230)
                       {
                        
                    $sbox_output "Eintrag zu lang";
                        
                    $sbox_check 1;
                       }

                       
                    ### einzelnes Wort zu lang?
                       
                    $sbox_inhalt=explode(" "$sbox_bla);
                       foreach (
                    $sbox_inhalt as $sbox_temp)
                       {
                        if (
                    strlen($sbox_temp)>$sbox_wordmaxlength)
                        {
                         
                    $sbox_output "einzelnes Wort zulang";
                         
                    $sbox_check 1;
                        }
                       }

                       
                    ### neuen Eintrag in die Datenbank schreiben
                       
                    if ($sbox_check == 0)
                       {
                        
                    $sbox_name htmlentities(strip_tags($sbox_name));
                        
                    $sbox_bla htmlentities(strip_tags($sbox_bla));
                        
                    mysql_query("INSERT INTO xp_sbox (ip, date, name, bla)
                    VALUES ('
                    $sbox_ip', '$sbox_date', '$sbox_name', '$sbox_bla')");
                       }
                      }
                      
                    ### Spamschutz aktiv
                      
                    else
                      {
                       
                    $sbox_output "sorry, spamschutz akitv";
                      }
                      
                    ### Name und Text zurücksetzen
                      
                    if ($sbox_check == 0)
                      {
                       
                    $sbox_name="Name";
                       
                    $sbox_bla="Text";
                      }
                     }
                     
                    $sbox_name stripslashes(strip_tags(str_replace("\"""'"$sbox_name)));
                     
                    $sbox_bla stripslashes(strip_tags(str_replace("\"""'"$sbox_bla)));
                    }
                    else
                    {
                     
                    $sbox_name="Name";
                     
                    $sbox_bla="Text";

                    Zuletzt geändert von re_lex; 21.02.2004, 19:45.

                    Kommentar


                    • #11
                      hmm,

                      schreib mal in dein formular, gleich am anfang
                      Code:
                      <input type="hidden" name="sbox_submit" value="3" />
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        wow, thank you very much!!

                        hey Hund
                        es funktionriert!! du bist genial. ein fettes dankeschön von mir. hast was gut bei mir

                        Kommentar


                        • #13
                          ok

                          hauptsache, du weißt auch, warum es jetzt geht ....
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            warum

                            ehrlich gesagt ist es mir nicht ganz klar warum es funktioniert. aber ich hab auch schon nicht kapiert warum es NICHT funktionierte.
                            die unterschiede, die ich feststellen konnte sind, dass die vairabeln welche die x und y position übergeben nicht mehr [sbox_submit_y] sondern nur noch [y] heissen. und dass eine zusätliche variable [sbox_submit] (eben das hidden field) übergeben wird.
                            naja, vielleicht verseh ichs ja mal, wenn ich mehr ahnung von der ganzen forumlar und variabeln übergabe geschichte hab.

                            Kommentar


                            • #15
                              Re: hidden filed?

                              mal http://dclp-faq.de/q/q-formular-image.html lesen, hätte auch helfen können.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X