juha: Hidden-Felder PERL-Programm übergeben?

Hallo Zusammen

Anhand von hidden-Feldern möchte ich die von der auf einer HTML-seite eingegebenen Daten an mein PERL-Programm weiterleiten, ich versuchte es wie folgt:

<form method="POST" action="/cgi-bin/zeit.cgi">
<table  border="0" cellpadding="2">
<br>
<br>
<br>
<br>
<tr>
   <td bgcolor="#E7F7FF">Name</td>
   <td bgcolor="#E7F7FF"><input type="text" name="verw_name" size="20" value=""></td>
</tr>
<tr>
   <td bgcolor="#E7F7FF">Ort</td>
   <td bgcolor="#E7F7FF"><input type="text" name="verw_ort" size="20" value=""></td>
</tr>
<tr>
    <td bgcolor="#E7F7FF"> </td>
    <td bgcolor="#E7F7FF"><INPUT TYPE="button" VALUE=" Anmelden " onClick="self.location.href='/cgi-bin/zeit.cgi?batchangabe=person'"></td>

<input type="hidden" name="name" value="verw_name">
<input type="hidden" name="ort" value="verw_ort">
</tr>
</table>
</form>

in batchangabe steht nun person, also geht es in meinem Programm in eine allfällige if($in{batchangabe} eq person), allerdings geht mein perlprogramm nicht in die schleifen wie if($in{name} ne "" and $in{ort} ne "")

Was muss ich anders programmieren??
Grüsse
Juha

  1. </archiv/2002/1/3368/>

    1. </archiv/2002/1/3368/>

      Ja das dachte ich auch, doch genau so habe ich es ja schon????!!!

      Wird im Hiddenfeld wirklich der eingetragene Wert übermittelt?

      Grüsse juha

      1. Hi,

        Wird im Hiddenfeld wirklich der eingetragene Wert übermittelt?

        wenn ein Formular versendet wird, ist ein <input type="hidden"> identisch mit einem <input type="text">. Wenn nicht das passiert, was Du Dir vorstellst, solltest Du mal den HTML-Code überprüfen - Wenn Du z.B. '<input ... value=bla blub>' schreibst, wird nur "bla" übertragen (btw: das Attribut namens "blub" gibt es nicht), und wenn Du '<input ... value="bla "Quotes" blub">' sagst, wird auch nur "bla " als Attributwert erkannt.

        Cheatah

  2. Moin!

    Anhand von hidden-Feldern möchte ich die von der auf einer HTML-seite eingegebenen Daten an mein PERL-Programm weiterleiten, ich versuchte es wie folgt:

    Dir ist einiges nicht so ganz klar, wie mir scheint. Ich erklär's mal ausführlich. :)

    <form method="POST" action="/cgi-bin/zeit.cgi">

    Das hier ist die Angabe, wohin das Formular geschickt werden soll, wenn der SUBMIT-Button gedrückt wird, oder das Formular per submit()-Methode abgeschickt wird.

    <input type="text" name="verw_name" size="20" value="">
    <input type="text" name="verw_ort" size="20" value="">

    Zwei ganz normale Textfelder mit Namen.

    <INPUT TYPE="button" VALUE=" Anmelden " onClick="self.location.href='/cgi-bin/zeit.cgi?batchangabe=person'">

    Ein BUTTON. Allerdings ein ganz normaler ohne spezielle Funktion. Wenn man ihn klickt, wird eine neue Seite aufgerufen, ohne das Formular abzuschicken! Allerdings ist ein URL-Parameter enthalten. Und "zufällig" ist die neue Seite identisch mit dem Skript, welches auch das Formular erhalten soll.

    <input type="hidden" name="name" value="verw_name">
    <input type="hidden" name="ort" value="verw_ort">

    Zwei versteckte Felder, die andere Namen haben und Werte, die (vermutlich nicht zufällig) den beiden Textfeldern oben ziemlich ähnlich sind.

    </form>

    Ende des Formulars.

    Ich hoffe, du hast bemerkt, daß das Formular eben NICHT abgeschickt wird, weil es keinen SUBMIT-Button hat und auch kein Javascript aktiv wird, welches es abschickt.

    in batchangabe steht nun person, also geht es in meinem Programm in eine allfällige if($in{batchangabe} eq person), allerdings geht mein perlprogramm nicht in die schleifen wie if($in{name} ne "" and $in{ort} ne "")

    Das ist eben klar: Wenn du eine URL mit einem Parameter aufrufst, dann hat das Skript auch nur einen Parameter. Dein Button ist von der Funktionsweise identisch mit dem Eintippen der URL in die Browserzeile.

    Was muss ich anders programmieren??

    1. Du brauchst einen Submit-Button:
    <input type="submit">
    Gerne auch mit weiterer Ausstattung wie Beschriftung und Absendewert.

    2. Du schmeißt deine Hidden-Felder weg. Die werden nicht dynamisch befüllt, also haben sie keinen Sinn. Sie enthalten jedenfalls NICHT die in den beiden Textfeldern eingetragenen Werte.

    3. Du baust ein Hidden-Feld ein, welches den URL-Parameter enthält:
    <input type="hidden" name="batchangabe" value="person">
    Nur so kriegt man URL-Parameter, die man ansonsten und am liebsten als Parameter in der Action-Definition des <FORM>-Tags eingegeben hätte, an das Skript übertragen. Bei Action sind Parameter nämlich nicht erlaubt!

    4. Ach ja, solltest du es nicht schon getan haben: Schmeiß auch deinen alten Button weg, der bringt es nicht. :)

    - Sven Rautenberg