Probleme mit verschiedenen Browsern

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

  • Probleme mit verschiedenen Browsern

    Warum funktioniert mit Firefox alles so, wie ich es will und im IE nicht?!?
    Auch bei Safari tut es nicht immer das, was ich will.

    Am deutlichsten ist es bei Grafik-Verweisen.

    Ich dachte mir, es wäre eine Möglichkeit, einen Link zu realisieren,
    der POST-Variablen transportiert, indem ich so etwas schreibe:

    PHP-Code:
    <input type='image' src=' ' name='readmessage'
    value='<? echo $messageID; ?>' alt='<? echo $messageTitle; ?>'>
    Das Bild wird nicht gefunden, also wird der Alternativ-Text ausgegeben.
    Nun kann ich auf den Text klicken und die aufgerufene Seite enthält folgendes:

    PHP-Code:
    if ($_POST['readmessage']) $messageID $_POST['readmessage']; 
    Mit Firefox funktioniert alles prima.

    Mit dem IE:
    Grafisch: es wird zwar der Text angezeigt, aber auch ein kleines Icon mit Fragezeichen.
    Sie natürlich bescheuert aus.
    Funktional: Beim Drücken auf den Button wird anscheinend keine POST-Variable übertragen,
    denn es wird nicht in den if-Block gesprungen.

    Wieso nicht? Ist das kein HTML-Standard?
    Wenn ich type='submit' statt type='image' benutze, funktionert es bei allen.
    Allerdings habe ich dann einen Button, den ich nicht haben will.

    Bei Safari:
    Im Prinzip wie beim IE, nur daß der Alternativ-Text nicht angezeigt wird und nur
    ein kleines Fragezeichen zu sehen ist...

    Könnte man nicht alle Leute zwingen, Firefox zu benutzen? Das scheint mir der
    einzige Browser zu sein, der alles macht, wie ich es will.
    Zuletzt geändert von tijab; 12.10.2004, 22:08.

  • #2
    Re: Probleme mit verschiedenen Browsern

    Original geschrieben von tijab

    Könnte man nicht alle Leute zwingen, Firefox zu benutzen? Das scheint mir der
    einzige Browser zu sein, der alles macht, wie ich es will.
    dazu nur

    du sollst froh sein, dass es bei deinem Schrottcode überhaupt mit dem FF funz.

    1. Attributwerte gehören in ""
    2. bei einem image-button übermittelt der browser die x- und die y-koordinate, an der auf das bild geklickt wurde.

    print_r($_POST);

    hilft dir dabei Überblick zu verschaffen.

    Kommentar


    • #3
      Re: Probleme mit verschiedenen Browsern

      laß dir mal nach dem absenden $_POST per print_r ausgeben ...
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        Re: Re: Probleme mit verschiedenen Browsern

        Original geschrieben von asp2php
        1. Attributwerte gehören in ""
        vorsicht bei solchen Äußerungen, lieber nochmal beim wc3 nachschlagen ....


        => Attribute müssen nur in " eingschlossen werden, wenn sie andere Zeichen als:

        Buchstaben
        Zahlen
        Punkt
        Unterstrich

        enthalten
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          Re: Re: Re: Probleme mit verschiedenen Browsern

          Original geschrieben von TBT
          vorsicht bei solchen Äußerungen, lieber nochmal beim wc3 nachschlagen ....


          => Attribute müssen nur in " eingschlossen werden, wenn sie andere Zeichen als:

          Buchstaben
          Zahlen
          Punkt
          Unterstrich

          enthalten
          egal , ist alle mal besser wenn immer in " angegeben

          Kommentar


          • #6
            das was du zu recht zu sehen kriegst ist ein broken image ..
            wenns dir nicht gefällt, nimm einen button ..
            und wenn dir der nicht gefällt -> lern css !
            mfg,
            [color=#0080c0]Coragon[/color]

            Kommentar


            • #7
              Ok. Hab das mal getestet.
              print_r() ist ja eine nette Funktion. Kannte ich noch nicht.
              Das hat mir aber bestätigt, daß FF besser ist als IE (zumindest, für das, was ich machen will)

              Ausgabe FF:
              Array ( [readmessage_x] => 10 [readmessage_y] => 11 [readmessage] => 31 ) 1


              Ausgabe IE:
              Array ( [readmessage_x] => 4 [readmessage_y] => 17 ) 1

              Warum übergibt der IE nicht auch das: [readmessage] => 31
              Wär doch keine Kunst! Und nützlich ist es auf jeden Fall...
              Koordinaten sind ja schön und gut, aber damit kann ich in dem Fall nix anfangen.

              Was ich möchte:
              Eine Tabelle mit Nachrichten. Wenn man auf einen Titel klickt, soll die Nachricht geöffnet werden. Und ich würde dien Information, WELCHE Nachricht gelesen werden soll, gerne per POST übertragen.
              Wie mach ich das?

              1. Attributwerte gehören in ""
              Das ist von Fall zu Fall unterschiedlich. Beides ist erlaubt.
              Ich hab mir angewöhnt, HTML-Attribute in ' ' zu setzen, da HTML eh keine Variablen hat, die es damit nicht interpretieren könnte.
              Deswegen ist der Code nicht Schrott. Ist halt meine Coding-Convention.

              Mag sein, daß der Code Schrott ist wegen
              2. bei einem image-button übermittelt der browser die x- und die y-koordinate, an der auf das bild geklickt wurde.
              aber das war genau der Grund meiner Frage...

              Und dazu:
              das was du zu recht zu sehen kriegst ist ein broken image ..
              wenns dir nicht gefällt, nimm einen button ..
              Ich weiß, was mir dieses Fragezeichen sagen will. Aber es ist unnötig, es anzuzeigen, wenn ich einen Alternativ-Text angegeben habe.
              Das macht nur das Design kaputt. FF machts richtig. (Meiner Meinung nach)
              Button sieht auch scheiße aus.

              und wenn dir der nicht gefällt -> lern css !
              Das klingt sehr abfällig. Ich bin kein CSS-Profi, aber ein Buch mit sieben Siegeln ist es für mich auch nicht.
              Wenn du mir sagen kannst, wie man das broken image mit CSS unterdrücken kann, wär ich dir dankbar.

              Kommentar


              • #8
                Original geschrieben von tijab
                Was ich möchte:
                Eine Tabelle mit Nachrichten. Wenn man auf einen Titel klickt, soll die Nachricht geöffnet werden. Und ich würde dien Information, WELCHE Nachricht gelesen werden soll, gerne per POST übertragen.
                Wie mach ich das?
                wenn du auf der einbindung als input type="image" bestehst, dann nur, in dem du die nachrichten-ID in den namen des buttons mit einbaust und auswertest.
                dann kannst du allerdings auch gleich einen submit-button dafür nehmen ...

                Ich weiß, was mir dieses Fragezeichen sagen will. Aber es ist unnötig, es anzuzeigen, wenn ich einen Alternativ-Text angegeben habe.
                nö, ist es nicht.
                nur so weiß ich als nutzer, dass du hier nicht vorhattest, wirklichen text auszugeben, sondern ein bild, was jetzt fehlt.

                aber input type="image" zu nehmen, ohne dabei überhaupt ein bild anzeigen zu wollen - das ist ein perverses konzept.


                Wenn du mir sagen kannst, wie man das broken image mit CSS unterdrücken kann, wär ich dir dankbar.
                m.W. gar nicht.
                und es gibt auch keinen vernünftigen grund, so etwas zu wollen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Ich will nochmal erläutern, warum ich gerne einen Button haben will und keinen Link mit GET-Variablen.
                  Ihr kennt sicher das Problem, daß man eine Seite hat, die sich bei einem Klick auf ein Button selbst neu lädt.
                  Einstellungen in Formularen gehen dabei aber verloren.
                  Ich hab das Problem (z.B. für Checkboxes und Textfelder) so gelöst:
                  PHP-Code:
                  <input type='checkbox' name='bla1' <? if ($_REQUEST['bla1']) echo "checked"; ?>>
                  <input type='text' name='bla2' <?  echo $_REQUEST['bla2']; ?>>
                  Funktioniert auch prima. Wenn ich einen Button drücke.
                  Wenn ich die Seite aber so aufrufe:
                  PHP-Code:
                  <a href='<? echo $_SERVER["PHP_SELF"]."?messID=$messID"; ?>'><? echo $title; ?></a>
                  werden die Formulare nicht übertragen, so daß die Einstellungen verloren gehen.

                  Und wie gesagt: die Tatsaache, daß mit dem FF alles so funzt, wie ich es will, zeigt mir, daß es so blöd nicht sein kann, was ich verlange.
                  Nur scheint es leider der einzige zu sein.

                  Kommentar


                  • #10
                    Original geschrieben von wahsaga
                    und es gibt auch keinen vernünftigen grund, so etwas zu wollen.
                    Dann sag mir doch mal, wie ich einen Link realisiere, der POST-Variablen verschickt.
                    Oder wie löst ihr die Probleme, die ich in meinem vorigen Posting beschrieben habe?

                    Kommentar


                    • #11
                      Original geschrieben von tijab
                      Ihr kennt sicher das Problem, daß man eine Seite hat, die sich bei einem Klick auf ein Button selbst neu lädt.
                      Einstellungen in Formularen gehen dabei aber verloren.
                      nein, das problem kenne ich nicht - weil ich so einen unfug nicht mache.

                      es ist weitgehend sinnfrei, eine formularseite neu zu laden - und absolut logisch, dass dabei die werte "verloren gehen".

                      warum schickst du das formular denn nicht einfach ab - dann hast du doch im script die werte, und kannst sie beim erneuten ausgeben der seite wieder als vorbelegung in die formularfelder eintragen.


                      Dann sag mir doch mal, wie ich einen Link realisiere, der POST-Variablen verschickt.
                      gar nicht. ist das so schwer zu kapieren? die einzige möglichkeit, POST mittels HTML auszuführen, ist ein formular.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Original geschrieben von tijab
                        I
                        Wenn ich die Seite aber so aufrufe:
                        PHP-Code:
                        <a href='<? echo $_SERVER["PHP_SELF"]."?messID=$messID"; ?>'><? echo $title; ?></a>
                        werden die Formulare nicht übertragen, so daß die Einstellungen verloren gehen.
                        Klar wird das Formular nicht übertragen. Wo siehst du denn ein submit-command?

                        wenn du aber:
                        PHP-Code:
                        <a href='<? echo $_SERVER["PHP_SELF"]."?messID=$messID"; ?>' onclick="document.formname.submit();"><? echo $title; ?></a>
                        dann wirst du dich freuen. (JS muß aber erlaubt sein)

                        Kommentar


                        • #13


                          warum schickst du das formular denn nicht einfach ab - dann hast du doch im script die werte, und kannst sie beim erneuten ausgeben der seite wieder als vorbelegung in die formularfelder eintragen.
                          ... ehm ... aber das ist doch genau das Verfahren, wie ich es oben beschrieben habe!
                          Mit meinem Image-Button-'Link' habe ich genau das, was ich will!
                          Funktioniert halt leider nur mit FF. Und deshalb ärgert es micht, daß die anderen Browser das nicht können.

                          Zu der JS-Lösung:

                          Ich möchte aber kein JS.

                          Und so sinnfrei ist es nicht, eine Formularseite neu laden zu wollen.
                          Gerade, wenn ich kein JS will, muß ich doch irgendwie die Formulardaten checken.
                          Und wenn was falsch war, wird die Seite nochmal angezeigt mit einer Fehlermeldung.
                          Dabei muß der Benutzer aber nicht alles noch einmal eingeben, weil die Formulareinträge wieder neu eingetragen wurden. Clever, oder?

                          Bei einer Passwort-Eingabe werde ich sicher nicht im JS-Code das PW im Klartext stehen haben und so checken.
                          Ich muß also eine neue php-Seite laden, die in der DB nachschaut.
                          Günstigerweise nehme ich da genau die selbe Seite und frage einfach ab, ob der Submit-Button gedrückt wurde.
                          War das Passwort falsch, der Name aber richtig, kann ich diesen mit meiner Methode wieder eintragen.

                          Komisch. Ich hätte nicht gedacht, daß diese Lösung so abwegig ist...
                          Zuletzt geändert von tijab; 13.10.2004, 13:46.

                          Kommentar


                          • #14
                            Original geschrieben von tijab
                            Ich möchte aber kein JS.
                            Gut dann nehme ein Submitbutton und lege per CSS ein background-image drunter, dann hast du auch dein "image"-Button
                            ... Clever, oder?
                            ja so clever wie die anderen Milliarden Seiten auch
                            Bei einer Passwort-Eingabe werde ich sicher nicht im JS-Code das PW im Klartext stehen haben und so checken.
                            Hä, wer macht so was?
                            Ich muß also eine neue php-Seite laden, die in der DB nachschaut. Günstigerweise nehme ich da genau die selbe Seite und frage einfach ab, ob der Submit-Button gedrückt wurde.
                            das wär nicht verkehrt.
                            War das Passwort falsch, der Name aber richtig, kann ich diesen mit meiner Methode wieder eintragen.
                            wie bitte? was eintragen?
                            Komisch. Ich hätte nicht gedacht, daß diese Lösung so abwegig ist...
                            ...

                            Kommentar


                            • #15
                              Diese Lösung scheint mir noch die beste:

                              wenn du auf der einbindung als input type="image" bestehst, dann nur, in dem du die nachrichten-ID in den namen des buttons mit einbaust und auswertest.
                              Nur das Auswerten ist das Problem.
                              Wie soll ich denn das Vorhandensein einer Request-Variable abfragen, wenn ich nicht genau weiß, wie sie heißt?


                              dann kannst du allerdings auch gleich einen submit-button dafür nehmen ...
                              Nein. Ein submit-Button sieht immer wie ein Button aus und nicht wie normaler Text.
                              Wenn ich eine Tabelle habe, in der die Titel verschiedener Nachrichten stehen, dann möchte ich nicht, daß die ganzen Titel Buttons sind.

                              Kommentar

                              Lädt...
                              X