Excess2000: Problem mit Formular. Bitte helfen.

Hallo Jungs und Madels,

ich habe eine Seite mit 3 Formularen. Der User kann auf der Seite nach Dingen suchen und die Suchergebnisse werden dem User angezeigt. Es besteht ebenfalls die Möglichkeit Dateien hochzuladen. Ich habe mehrere Submit-Buttons und ich weise einem normalerweise Hidden-Feld einen String zu um zu unterscheiden welcher Submit-Button beim drücken der Entertaste submittet wird. Das klappt alles super. Aber ich habe von anfang aus dem eigentlichen Hidden Feld ein Textfeld gemacht aus Debug-gründen. Wie gesagt alles klappt wenn das Kennung (das welches den String bekommt) ein Text Feld ist. Sobald ich aus dem Textfeld ein Hiddenfeld mache klappt gar nichts mehr! Ich ändere nichts als die Eigenschaft von dem Kennung-Feld! Wer kann mir helfen oder hat Tipps für mich?? Ich habe den Quellcode der erzeugten Dateien einmal mit Hidden und einmal mit Text verglichen und Sie sind 100% identisch bis auf die Eigenschaft von Kennung. Ich versteh es nicht. Bitte helft mir.

Hier mein QUellcode von dem Forumular:

<form name="a1" action=<? echo $PHP_SELF; ?> method="post" onsubmit ="zuweisen()">
<table width="350" height="69" border=0>
<tr>
<td width="78" height="30" class="Arial">
<select name="Auswahl">
<option selected> Bitte wählen</option>
<option>Titel</option>
<option>Nummer</option>
<option>Kurxtext</option>
<option>Preis</option>
<option>Dozent</option>
<option>Raum</option>
<option>Startdatum</option>
<option>Enddatum</option>
</select></td>
<td width="40" class="Arial">Suche</td>
<td width="144">
<input name="suchtxt" type="text" onfocus="actionstring='suchen';"></td>
<? echo "Kennung : $kennung"; ?>
<input type="text" name="kennung" value="suchen">
<td width="60">
<input type="submit" name="send" value="Suchen" ></td>
</tr>
<td height="6">
</form>

Danke Danke

MFG xss

  1. Hallo Jungs und Madels,

    ich habe eine Seite mit 3 Formularen. Der User kann auf der Seite nach Dingen suchen und die Suchergebnisse werden dem User angezeigt. Es besteht ebenfalls die Möglichkeit Dateien hochzuladen. Ich habe mehrere Submit-Buttons und ich weise einem normalerweise Hidden-Feld einen String zu um zu unterscheiden welcher Submit-Button beim drücken der Entertaste submittet wird. Das klappt alles super. Aber ich habe von anfang aus dem eigentlichen

    Das ist überflüssig, da...

    <input name="suchtxt" type="text" onfocus="actionstring='suchen';"></td>
    <input type="text" name="kennung" value="suchen">
    <input type="submit" name="send" value="Suchen" ></td>

    .. du einfach, alle 3 als Sumbmit Buttons definieren kannst und ihnen unterschiedliche Namen gibst. Dein CGI Programm kann dann abfragen welcher Button gedrückt wurde. Das hat den Vorteil, das es auch ohne JS funktioniert.

    Struppi.

    1. <input name="suchtxt" type="text" onfocus="actionstring='suchen';"></td>
      <input type="text" name="kennung" value="suchen">
      <input type="submit" name="send" value="Suchen" ></td>

      .. du einfach, alle 3 als Sumbmit Buttons definieren kannst und ihnen unterschiedliche Namen gibst. Dein CGI Programm kann dann abfragen welcher Button gedrückt wurde. Das hat den Vorteil, das es auch ohne JS funktioniert.

      Das verstehe ich nicht?? Ich verwende PHP und nicht CGI. Wieso soll ich alle input types zu Submit-Buttons machen?? Das eine ist ein Eingabefeld in dem der Suchbegriff eingegeben wird. Das andere ist ein Feld was ich brauche weil ich mehrere Submit-Buttons habe. Kannst du mir mal näher erläutern was du genau meinst?

      MFG xss

      Danke

      1. <input name="suchtxt" type="text" onfocus="actionstring='suchen';"></td>
        <input type="text" name="kennung" value="suchen">
        <input type="submit" name="send" value="Suchen" ></td>

        .. du einfach, alle 3 als Sumbmit Buttons definieren kannst und ihnen unterschiedliche Namen gibst. Dein CGI Programm kann dann abfragen welcher Button gedrückt wurde. Das hat den Vorteil, das es auch ohne JS funktioniert.
        Das verstehe ich nicht?? Ich verwende PHP und nicht CGI. Wieso soll ich alle input types zu Submit-Buttons machen?? Das eine ist ein Eingabefeld in dem der Suchbegriff eingegeben wird. Das andere ist ein Feld was ich brauche weil ich mehrere Submit-Buttons habe. Kannst du mir mal näher erläutern was du genau meinst?

        PHP ist i.d.R. eine CGI Sprache, informier dich mal.

        Das die inputsd textfelder waren ist mir nicht aufgefallen, sorry.
        Wenn du mehrere Submit buttons hast, dann ist ja schon alles in Ordnung.

        <input type="submit" name="send" value="Suchen" >
        <input type="submit" name="send" value="nicht Suchen" >

        Wenn man auf den 'Suchen'- Knopf drückt kommt im CGI Skript an: send=Suchen
        Wenn man auf den 'nicht Suchen'- Knopf drückt kommt im CGI Skript an: send=nicht Suchen

        Und das sollte doch ohne Probleme auf dem Server unterschiedbar sein.

        Struppi.

        1. Hallo,

          hast ist natürlich unterscheidbar und das klappt ja auch prima. Nur das Problem ist ja ein ganz anderes. Wenn ich aus dem Button Kennung ein Hiddenfeld mache anstatt einem Textfeld, so wird das Formular nicht mehr submittet: Woran kann das liegen?

          MFg xss

          1. Hallo,

            hast ist natürlich unterscheidbar und das klappt ja auch prima. Nur das Problem ist ja ein ganz anderes. Wenn ich aus dem Button Kennung ein Hiddenfeld mache anstatt einem Textfeld, so wird das Formular nicht mehr submittet: Woran kann das liegen?

            Keine Ahnung dafür sind die Informationen nicht ausreichend.
            Eigentlich kann es nur an Fehlerhaften HTML liegen oder deine Mysteriöse JS Funktion macht irgendwas um den Submit zu verhindern (action ändern).

            Struppi.

            1. Hallo,

              also meine JS function sieht so aus :

              actionstring=""
              function zuweisen()
              {
              if(actionstring=="")
              actionstring="suchen"
              document.forms[0].kennung.value=actionstring
              return true
              }

              Dazu habe ich ein eigentlich Hidden inputtype :

              <input type="hidden" name="kennung" value="suchen">

              Und ein Suchfeld in dem onfocus der actionstring geändert wird :

              <input name="suchtxt" type="text"  onfocus="actionstring='suchen';" >

              Beim Formular rufe ich onsubmit die zuweisen() Funktion auf :

              echo "<form name='a1' action='$PHP_SELF' method='post' onsubmit='return zuweisen()' >";

              Wenn Kennung Textfeld dann klappt alles. Wenn Kennung Hidden Feld dann klappt nichts. Irgendeien Idee?

              Danke für deine Tipps?

              MFg xss

              1. also meine JS function sieht so aus :

                Du kriegst keinen Fehler zufällig?
                (Das kleine gelbe Dreieck kennst du?)

                actionstring=""
                function zuweisen()
                {
                if(actionstring=="")
                actionstring="suchen"
                document.forms[0].kennung.value=actionstring
                return true
                }

                Das kann man auch einfacher machen:
                <form name='a1' action='...' method='post' onsubmit='return zuweisen(this)'>

                function zuweisen(f)
                {
                if(!actionstring) actionstring="suchen";
                f.kennung.value = actionstring;
                return true;
                }

                Der ';' sollte immer nach einer Anweisung kommen, sonst weiss das Skript nicht was es machen soll.

                Wenn Kennung Textfeld dann klappt alles. Wenn Kennung Hidden Feld dann klappt nichts. Irgendeien Idee?

                eigentlich sollte es gehen, bei mir tut es das auch.

                Woran merkst du, das es nicht klappt? ("nicht klappen" ist eine etwas unvollständig Fehlerbeschreibung)

                Struppi.

                1. Hallo,

                  ich dank dir schon mal für deine Hilfe.  Also, das Hidden-Feld ist dazu da, dass der User im Suchfeld Enter drücken kann. Wenn das Hidden-Feld korrekt gefüllt ist, dann kommt bei drücken von Enter die Ergebnisliste. Wenn das Feld Kennung aber hidden ist kommt beim drücken von Enter keine Ergebnisliste. Soll ich dir mein Skript mal mit einem Dump zusenden? Evtl. siehst du was was ich nicht sehe?

                  Tausend Dank

                  MFg xss

                  1. Hallo,

                    ich dank dir schon mal für deine Hilfe.  Also, das Hidden-Feld ist dazu da, dass der User im Suchfeld Enter drücken kann. Wenn das Hidden-Feld korrekt gefüllt ist, dann kommt bei drücken von Enter die Ergebnisliste. Wenn das Feld Kennung aber hidden ist kommt beim drücken von Enter keine Ergebnisliste. Soll ich dir mein Skript mal mit einem Dump zusenden? Evtl. siehst du was was ich nicht sehe?

                    Nö, ich kann kein PHP.

                    Ich vermute mal, das bei einem ENTER submit (der so nur im IE funktioniert) eben keine submit gefeurt wird.

                    Änder die Felder so um:
                    <input name="suchtxt" type="text"  onfocus="this.form.kennung.value='suchen';" >

                    Was passiert eigentlich bei abgeschaltetem JS?

                    Struppi.

                    1. hallo,

                      das setzen des Wertes funktioniert. Der Entersubmit geht mit meiner Variante auch in Netscape. Nur ich versteh nicht das etwas Funktioniert wenn es ein Textfeld ist und das etwas nicht funktioniert wenn es ein hiddenfeld ist.

                      Danke

                      MFg xss

                      1. hallo,

                        das setzen des Wertes funktioniert. Der Entersubmit geht mit meiner Variante auch in Netscape. Nur ich versteh nicht das etwas Funktioniert wenn es ein Textfeld ist und das etwas nicht funktioniert wenn es ein hiddenfeld ist.

                        Weil ein Formular mit nur einem Textfeld, wird bei einem Enter submitted, mit mehreren nicht (ausser IE). offensichtlich "korrigiert" (mal wieder) der IE sein fehlerhaftes Verhalten indem er einfach kein submit feuert.

                        Struppi.

                        1. hallo,

                          ich nutze doch netscape. aber egal. dem fehler bin ich noch immer nicht auf die spur gekommen :-(

                          mfg xss

                          1. hallo,

                            ich nutze doch netscape. aber egal. dem fehler bin ich noch immer nicht auf die spur gekommen :-(

                            Naja, wenn das Formular mehr als ein Textfeld hat erfolgt anscheinend kein onsubmot, oder?

                            Struppi.

                            1. richtig. Das komische ist ja zusaätzlich, das das eine Formular nur einen Submit-Button hat aber nicht korrekt ausgeführt wird, wenn ich enter drücke :-(

                              MFG xss

                              1. richtig. Das komische ist ja zusaätzlich, das das eine Formular nur einen Submit-Button hat aber nicht korrekt ausgeführt wird, wenn ich enter drücke :-(

                                Also, ich hab's mal ausprobiert und bei mir (IE 4.0 & NC 4.5) läuft's einwandfrei ob mit Enter oder mit Button.

                                <script type="text/javascript">
                                function test(f)
                                {
                                    alert(f.kennung.value);
                                }
                                </script>
                                <BODY>

                                <form onsubmit="test(this);">
                                <input type="hidden" name="kennung" value="">
                                <input type="text" value="" onfocus="this.form.kennung.value='suchen';">
                                <input type="submit" value="submit">
                                </form>
                                </BODY>

                                liefert immer die richtige Kennung.

                                Struppi.

                                1. Hallo,

                                  erst mal dank für deine Geduld. Bin mittlerweile auch so weit, dass die Kennung immer richtig ist. Gebe Sie ebenfalls mit alert aus. Leider löst das mein Problem nicht wirklich. Willst du mal eine online-demo??

                                  Mfg xss

                                  1. Hallo,

                                    erst mal dank für deine Geduld. Bin mittlerweile auch so weit, dass die Kennung immer richtig ist. Gebe Sie ebenfalls mit alert aus. Leider löst das mein Problem nicht wirklich. Willst du mal eine online-demo??

                                    wär ok, ich bin jetzt aber nicht mehr online.

                                    Struppi.

                                    1. Hallo,

                                      das ist schade. Darf ich dir mein Skript mal senden, mit einem Dump ob du was findest das ich nicht sehe? Wäre dir auf ewig verbunden.

                                      MFG xss

                                    2. Es läuft!!!!!!!!!!

                                      Der Fehler lag daran das wenn man(n) explizit den Suchen Button gedrückt hat dann war der Wert von Suchen gesetzt. Drückst du enter ist der Wert nicht gesetzt!!!! Ist schon interessant was dabei alles rauskommen kann.

                                      Danke

                                      MFG xss