Patrick: richtige Werte übergeben

Hallo Forum,

ich habe ein Formular mit mehreren Auswahllisten, die Namen enthalten. Der Nutzer wählt sich pro Liste einen Namen aus, gleichzeitig wird die entsprechende Telefonnr. in einem Textfeld dargestellt.

(Dies konnte ich ganz gut mit JavaScript realisieren, hier der Quelltext:

<html>
<head>
<script type="text/javascript">

function einfaches_einfuegen() {
  welcher_wert = document.formi.auswahl1.options[document.formi.auswahl1.selectedIndex].value;
  document.formi.rufnr1.value = document.formi.elements[welcher_wert].value;
}
function ueberschreiben() {
  welcher_wert = document.formi.auswahl1.options[document.formi.auswahl1.selectedIndex].value;
  document.formi.elements[welcher_wert].value = document.formi.rufnr1.value;
}

</script>
</head>
<body>
<form name="formi" action="script.pl" method="POST">
<p>

<select name="auswahl1" onChange="einfaches_einfuegen()">

<option value="wert1">Mueller</option>
  <option value="wert2">Meier</option>
  <option value="wert3">Schulze</option>
</select>
<input type="hidden" name="wert1" value="123">
<input type="hidden" name="wert2" value="456">
<input type="hidden" name="wert3" value="789">
</p>
<p>
<input type="text" name="rufnr1" onChange="ueberschreiben()">
</p>
</form>
</body>
</html>   )

Das funktioniert auch ganz gut.
Nun zu meinem eigentlichen Problem.
Die Formulardaten gehen an ein Script, welches sie in einer Textdatei speichert.
In der Textdatei stehen zwar die korrekten Rufnummern, aber keine Namen, sondern nur die values wert1, wert2 usw (Klar, es werden ja auch nur die values übertragen).
Wie übergebe ich jetzt aber die Namen?????

Ich währe für jede Hilfe dankbar.

Gruß Patrick

  1. Hi Patrick,

    wieso schreibst Du denn nicht:
    <option value="Mueller">Mueller</option> ?
                   ^^^^^^^
    Ansonsten könntest Du noch den umständlichen Weg gehen:

    %hash = ( "wert1" => "Mueller",
              "wert2" => "Maier"
            );

    Du könntest den Wert zum Schlüssel in die Datei schreiben.
    Hier wirst Du aber ungemein genau die Wartung der Seite beobachten
    müssen.. wovon abzuraten wäre!!!

    Gruß vom Horst

  2. hi,

    je nachdem wie du die inputfelder ausliest musst du sie auch wieder ausgeben. Mal angenommen du hast die key-value-paare in %in:

    require 'cgi-lib.pl';
    ReadParse(); # Liest die Inputfelder aus
    foreach my $k(sort keys %in){
     print "$k: \t\t $in{$k}\n";
    }

    Eine eigene ReadParse() findest du hier:

    http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?dis.10.8

    CGI.pm sichert ebenfalls die Kompatibilität zur cgi-lib.pl

    Rolf

    Hallo Forum,

    ich habe ein Formular mit mehreren Auswahllisten, die Namen enthalten. Der Nutzer wählt sich pro Liste einen Namen aus, gleichzeitig wird die entsprechende Telefonnr. in einem Textfeld dargestellt.

    (Dies konnte ich ganz gut mit JavaScript realisieren, hier der Quelltext:

    <html>
    <head>
    <script type="text/javascript">

    function einfaches_einfuegen() {
      welcher_wert = document.formi.auswahl1.options[document.formi.auswahl1.selectedIndex].value;
      document.formi.rufnr1.value = document.formi.elements[welcher_wert].value;
    }
    function ueberschreiben() {
      welcher_wert = document.formi.auswahl1.options[document.formi.auswahl1.selectedIndex].value;
      document.formi.elements[welcher_wert].value = document.formi.rufnr1.value;
    }

    </script>
    </head>
    <body>
    <form name="formi" action="script.pl" method="POST">
    <p>

    <select name="auswahl1" onChange="einfaches_einfuegen()">

    <option value="wert1">Mueller</option>
      <option value="wert2">Meier</option>
      <option value="wert3">Schulze</option>
    </select>
    <input type="hidden" name="wert1" value="123">
    <input type="hidden" name="wert2" value="456">
    <input type="hidden" name="wert3" value="789">
    </p>
    <p>
    <input type="text" name="rufnr1" onChange="ueberschreiben()">
    </p>
    </form>
    </body>
    </html>   )

    Das funktioniert auch ganz gut.
    Nun zu meinem eigentlichen Problem.
    Die Formulardaten gehen an ein Script, welches sie in einer Textdatei speichert.
    In der Textdatei stehen zwar die korrekten Rufnummern, aber keine Namen, sondern nur die values wert1, wert2 usw (Klar, es werden ja auch nur die values übertragen).
    Wie übergebe ich jetzt aber die Namen?????

    Ich währe für jede Hilfe dankbar.

    Gruß Patrick