Array in einem GET-Formular übergeben

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

  • Array in einem GET-Formular übergeben

    Hallo...

    hat vielleicht irgendwer eine Idee zu folgender Frage:
    Ich möchte mit einem <form ... > und einem <input ...> einige werte per GET über die URL übertragen... nun sind einige der werte in einem Array gespeichert und einige werte werden über normale <input ... >-Felder erzeugt.

    zuerst mal ein Beispiel:
    Parameterarry: array(aWert1 => '1', aWert2 => '2', aWert2 => '3')

    <form action="index.php" method="get">
    <input type="hidden" name="iWert1" value="4">
    <input type="hidden" name="iWert2" value="5">

    <input type="submit" value="submit">
    </form>

    meine URL soll also so aussehen:
    index.php?aWert1=1&aWert2=2&aWert3=3&iWert1=4&aWert2=5

    Damit ich jetzt alles in die URL bekomme habe ich 2 Wege ausprobiert:

    1. Versuch per php die fehlenden werte in den action-Tag des <form ...> eintragen:
    PHP-Code:
    <form action="index.php?aWert1=1&aWert2=2&aWert3=3" method="get">
      <
    input type="hidden" name="iWert1" value="4">
      <
    input type="hidden" name="iWert2" value="5">

      <
    input type="submit" value="submit">
    </
    form
    Resultat: wenn ich mit der Maus über den Submit fahre zeigt er die Parameter in der statuszeile richtig an, wenn ich dann aber klicke wird die zeile offenbar neu zusammengesetzt und er verliert die info, die ich im in seinem action-Tag mitgegeben habe... es sind nur noch die Parameter aus den <input ...>s enthalten:
    index.php?iWert1=4&aWert2=5

    2. Versuch ich dachte ich ich bin ganz ausgefuchst und gebe ihm einen input mit, der die richtigen Parameter reinschummelt, indem ich in einem Parameter einen String mitliefere, der den rest der Parameter-URL auffüllt:
    PHP-Code:
    <?php 
      $mein_array
    =array(aWert1 => '1'aWert2 => '2'aWert2 => '3');
    ?>

    <form action="index.php" method="get">
      <input type="hidden" name="iWert1" value="4">
      <input type="hidden" name="iWert2" value="5">
      
      <input type="hidden" name="XXX" value="<? Param_Array_to_URL($mein_array)?> ">

      <input type="submit" value="submit">
    </form>

    <?php
    function Param_Array_to_URL ($params) {
        
    // composes a url

        
    $param_str '';

        if(
    is_array($params)) {
            
    $pre '0&';
            while(list(
    $key$value) = each($params)) {
                
    $param_str .= $pre.urlencode($key).'='.urlencode($value);
                
    $pre '&';
                }
            unset(
    $params);

            }
        return 
    $param_str;
        };
    ?>
    Resultat: er schreibt zwar so wie ich es will eine lange Zeile mit allen Parametern, macht aber aus dem & ein %26 und aus dem = ein %3D, womit der Webserver es natürlich wieder nicht auswerten kann!
    ich bekomme also:
    index.php?XXX=0%26aWert1%3D1%26aWert2%3D2%26aWert3%3D3&iWert1=4&iWert2=5


    Hat irgendwer ne Idee zu diesen Versuchen oder noch nen weiteren Ansatz? (vielleicht versuche ich ja auch von hinten durchs knie irgendein wildes exeriment zu bauen, was gar nicht geht?!?)

    Danke
    Alex

  • #2
    OK..... es geht GANZ einfach!

    ich bau jetzt per php in ner schleife einfach die entsprechende anzahl <input ... > Tags ein und er ist glücklich!

    manchmal ist es sooooo einfach

    gruß
    alex

    Kommentar


    • #3
      mit serialize() zu arbeiten wäre evtl. auch noch eine möglichkeit gewesen ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar

      Lädt...
      X