Torben: return false; hier an der richtigen stelle?

hi leute habe folgendes script:

<form name="idfinder" onSubmit="fenster('./partybilder_view.php?bildid=' + document.idfinder.bildid.value,820,600);">

<input type="text" name="bildid" value="" class="form">
<input type="submit" value="Bild suchen" class="form">

</form>

das ganze soll eine such funktion sein! man gibt eine id ein und wenn man dann auf suchen klickt sollte sich nen fenster öffnen mit passendem inhalt! nur leider läd die seite dabei jedesmal neu! also habe ich return false; in onSubmit eingesetzt:

<form name="idfinder" onSubmit="fenster('./partybilder_view.php?bildid=' + document.idfinder.bildid.value,820,600); return false;">

<input type="text" name="bildid" value="" class="form">
<input type="submit" value="Bild suchen" class="form">

</form>

jetzt läd die seite nicht mehr neu aber das pop up öffnet sich trotzdem, wie gewollt!

also funktionieren tut es! nur wollte ich mal fragen ob das die klassische art ist sowas zu machen oder ob das eher gefuscht ist...!

lg aus dem sonnigen süden torben!

  1. <form name="idfinder" onSubmit="fenster('./partybilder_view.php?bildid=' + document.idfinder.bildid.value,820,600); return false;">

    <input type="text" name="bildid" value="" class="form">

    also funktionieren tut es! nur wollte ich mal fragen ob das die klassische art ist sowas zu machen oder ob das eher gefuscht ist...!

    Wenn Du den Größenwahn des Popups etwas dämpfst, damit es bei 800x600 nicht den Bildschirm sprengt (könnte man auch prozentual abhängig von screen.availWidth und -Height machen), und noch 'action="partybilder_view.php" method="get"' einfügst, damit man das Teil zur Not auch ohne Javascript benutzen kann, wäre es akzeptabel.

    1. also so:

      <form name="idfinder" onSubmit="fenster('./partybilder_view.php?bildid=' + document.idfinder.bildid.value,820,600); return false;" action="partybilder_view.php" method="get">

      ohne javascript gehts dann nur zu partybilder_view.php? oder?

      1. Hi,

        ohne javascript gehts dann nur zu partybilder_view.php? oder?

        wieso "nur"? Du hast ein Formular, mit dem Formulardaten versand werden. Diese sollte Dein Script auswerten können.

        freundliche Grüße
        Ingo

        1. die sollen ja nicht nur zur seite kommen sondern in die url!

          Hi,

          ohne javascript gehts dann nur zu partybilder_view.php? oder?
          wieso "nur"? Du hast ein Formular, mit dem Formulardaten versand werden. Diese sollte Dein Script auswerten können.

          freundliche Grüße
          Ingo

          1. Hi,

            die sollen ja nicht nur zur seite kommen sondern in die url!

            wo siehst Du denn den Unterschied?

            freundliche Grüße
            Ingo

      2. <form name="idfinder" onSubmit="fenster('./partybilder_view.php?bildid=' + document.idfinder.bildid.value,820,600); return false;" action="partybilder_view.php" method="get">

        ohne javascript gehts dann nur zu partybilder_view.php?

        Nein, da als HTTP-Methode get statt post gewählt wurde, landen die Formulardaten als Parameter in der URL, genau so, wie es bei Deiner Javascript-URL passiert, nur dass der Browser das automatisch macht. Die Dinger hinterm Fragezeichen werden auch GET-Parameter genannt.

        document.idfinder.bildid.value solltest Du übrigens noch durch escape() schleusen, um in URLs unerwünschte Zeichen unfallfrei zum PHP-Skript zu bekommen.

        1. hmm nur wie muss das dann aussehen?

          document.idfinder.bildid.value solltest Du übrigens noch durch escape() schleusen, um in URLs unerwünschte Zeichen unfallfrei zum PHP-Skript zu bekommen.

          1. document.idfinder.bildid.value solltest Du übrigens noch durch escape() schleusen, um in URLs unerwünschte Zeichen unfallfrei zum PHP-Skript zu bekommen.

            hmm nur wie muss das dann aussehen?

            Schau in SelfHTML nach, dort ist die Funktion beschrieben (IIRC Javascript/objektunabhängige Funktionen). Das bekommst Du sicher alleine hin.

          2. hmm nur wie muss das dann aussehen?

            Was hast du denn gegen meinen Vorschlag?
            Er ist einfach und funktioniert

            Struppi.

          3. ich glaube escape() ist unnötig, denn es gibt keine leerzeichen und nur zahlen von 0-9 !

    2. Hallo,

      Wenn Du den Größenwahn des Popups etwas dämpfst, damit es bei 800x600 nicht den Bildschirm sprengt (könnte man auch prozentual abhängig von screen.availWidth und -Height machen)

      Die sind im Endeffekt genauso (un)sinnig wie die anderen Eigenschaften des screen-Objekts. Der Browser kann naturgemäß nicht alle Leisten, Programmfenster, Docks und sonstige Besonderheiten berücksichtigen. Ob also availWidth/-Height irgendetwas mit der für den Benutzer optimalen Fenstergröße zu tun haben, ist letztlich reines Glücksspiel. Wahrscheinlich treffen die Probleme mit virtuellen Bildschirmgrößen und mehreren Bildschirmen auch auf availWidth/-Height zu.

      Mathias

      1. Wenn Du den Größenwahn des Popups etwas dämpfst, damit es bei 800x600 nicht den Bildschirm sprengt (könnte man auch prozentual abhängig von screen.availWidth und -Height machen)

        Die sind im Endeffekt genauso (un)sinnig wie die anderen Eigenschaften des screen-Objekts.

        Keine Ahnung, wo Du Deinen Endeffekt siehst, aber sie sind (un)sinnig genug, um zu verhindern, den meisten Benutzern mit Anzeigen kleiner gleich 800x600 ein 820x600 Pixel großes Fenster vor den Latz zu knallen. Wenn es schon ein riesiges Popup sein muss, dann ist es allemal besser, sich überhaupt irgendwie um die Umgebung zu kümmern als völlig blind durch die Gegend zu stolpern.

        Ob also availWidth/-Height irgendetwas mit der für den Benutzer optimalen Fenstergröße zu tun haben

        Niemand hat die optimale Fenstergröße versprochen. Es geht eher um Schadensbegrenzung, Du schießt ziemlich weit über das Ziel hinaus.

        1. Keine Ahnung, wo Du Deinen Endeffekt siehst, aber sie sind (un)sinnig genug, um zu verhindern, den meisten Benutzern mit Anzeigen kleiner gleich 800x600 ein 820x600 Pixel großes Fenster vor den Latz zu knallen.

          Sie können eben nicht verhindern, dass das Fenster in vielen Fällen trotzdem zu groß ist, weil nicht alle Leisten usw. berücksichtigt werden. Das Fenster ist größer als der tatsächlich auf dem Bildschirm anzeigbare Bereich, Stichwort virtuelle Auflösungen und mehrere Bildschirme. Habe ich ja schon genannt.

          Wenn es schon ein riesiges Popup sein muss, dann ist es allemal besser, sich überhaupt irgendwie um die Umgebung zu kümmern als völlig blind durch die Gegend zu stolpern.

          availWidth/-Height löst aber die genannten Probleme von screen.width/-height nicht im Ansatz.

          Niemand hat die optimale Fenstergröße versprochen. Es geht eher um Schadensbegrenzung, Du schießt ziemlich weit über das Ziel hinaus.

          Es ist eben keine hinreichend wirksame Schadensbegrenzung. Eine solche wäre, auf die Benutzung des screen-Objektes zu verzichten. Und darauf zu verzichten, eine feste Fenstergröße vorzugeben, weil die fehlende Anpassungsfähigkeit ein grundlegendes Problem von Popup-Fenstern ist, dem man nur schlecht mit Abfragen des screen-Objekts beikommen kann. Die Migration von screen.width zu screen.availWidth ist daher ein Tropfen auf den heißen Stein. Das habe ich auch detailliert unter http://molily.de/javascript-popups dargelegt.

          Mathias

  2. Hallo Torben

    hi leute habe folgendes script:

    <form name="idfinder" onSubmit="fenster('./partybilder_view.php?bildid=' + document.idfinder.bildid.value,820,600);">

    Das ist ja gemeingefährlich.

    Wenn du denn unbedingt ein Popup öffnen wilst, mach das doch optional.
    <form name="idfinder" target="popup"
    action="./partybilder_view.php"
    onSubmit="window.open('','popup','....');">

    Dann funktioniert es mit ohne JS und mit Popupblockern.

    Struppi.

  3. hi leute habe folgendes script:

    <form name="idfinder" onSubmit="fenster('./partybilder_view.php?bildid=' + document.idfinder.bildid.value,820,600);">

    <input type="text" name="bildid" value="" class="form">
    <input type="submit" value="Bild suchen" class="form">

    </form>

    Du schreibst aber komische Scripts! Meine sehen immer ganz anders aus. Welche Sprache ist das?