Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Array via GET weitergeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Array via GET weitergeben

    Hi,

    also folgende Ausgangslage:
    --
    - MySQL-DB Suche (form1)
    - Ergebnisse werden Tabellenlike aufbereitet,
    mit jeweils einem Link der ID via GET an das folgende dokument(form2) übergibt.
    --> geht soweit


    Ausbauziel:
    --
    in Form1 wird ein Array mit allen ID's gefüllt, weil diese mit an Form2 übergeben werden sollen. Ich dachte mir das beste ist, den bisherigen GET weg auszubauen.


    Frage:
    --
    Kann ich überhaupt ein Array via GET übergeben ?


    Source:
    --
    Form 1
    Code:
    <?php
    // Array wird gefüllt
    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
           // ARRAY
           $daten[$i] = $row['artikel_inv_nummer'];
    }
    
    
    // Array soll so übergeben werden:
    echo '<td bgcolor="#d0dec1"><a href="index.php?section=random_view&my_array='.$daten.'&identifier='.$daten[$i].'">Datensatz<a></td>';
    Die einzelne ID wird via $daten[$i] sauber übergeben,
    aber an das gesamt Array komm ich nicht dran


    Form 2
    Code:
    <?php
    $neu = array($_GET['my_array']);
    // testecho
    echo $neu[0];

    Problem:
    --
    Ich kriege anstatt dem gefüllten Array nur einen String "Array" in $neu[0]
    Wo liegt mein Fehler ?
    Bzw. woher kommt der Wert "Array" ?
    Übergebe ich nur den Typ von $daten oder was sonst ?
    oder kann man keine Arrays via GET übergeben `?


    Danke für jegliches Feedback
    Gruss
    fidel_


  • #2
    PHP-Code:
    <?php
    $ids 
    = array(149);
    $param_ids 'ids=' urlencode(join(','$ids));

    echo 
    $param_ids;
    ?>
    Das als Parameter an Deinen link anhängen.
    Was Du so an das Skript geliefert bekommst, mit explode(',', ... behandeln -> Feld mit Ids (muss natürlich trotzdem Element für Element abgetestet werden, weilBenutzereingaben)

    Kommentar


    • #3
      hi,

      erstmal danke für die Antwort, auch wenn mir da gerade evlt noch der "Hallo-das-ist-es-Effekt" fehlt.

      Weil welche Aussagekraft dann jeweils das 2C4 hat is mir unklar und die Gesamtidee bis dato auch. wenn ich ehrlich bin.

      Lust und Zeit es etwas auszuführen ?

      danke
      fidel_


      EDIT:
      das array in Formular 1 ist korrekt gefüllt, nochmal mit
      --
      echo "<pre>\n";
      print_r($daten);
      echo "</pre>\n";
      --
      getestet, aber die übergabe macht mich fertig.

      Kommentar


      • #4
        Ach so, Benutzereingaben aus Formular1 sollen mehrere Ids enthalten.

        Probier mal
        PHP-Code:
        <html>
            <body>
                <pre><?php print_r($_GET); ?></pre>
                <form method="GET" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                    


                        <input type="checkbox" name="chk[]" value="1" id="chk1"><label for="chk1">Nummer 1</label>

                        <input type="checkbox" name="chk[]" value="2" id="chk2"><label for="chk2">Nummer 2</label>

                        <input type="checkbox" name="chk[]" value="3" id="chk3"><label for="chk3">Nummer 3</label>

                        <input type="checkbox" name="chk[]" value="4" id="chk4"><label for="chk4">Nummer 4</label>

                        <input type="submit" />
                    </p>
                </form>
            </body>
        </html>
        aus.
        Der Effekt wird durch name="chk[]" ausgelöst.

        Kommentar


        • #5
          hehe,
          ich glaube wir kommunizierne gerade aneinader vorbei, bzw ich habe schlecht formuliert.


          vorlauf:
          --
          User hat Die Suche verwendet und nun eine Tabelle mit X Datensätzen vor sich.

          Jede Tabellenzeile hat bisher einen Link der zu Formular 2 führt und u.a. seine Artikel-Nummer via GET überträgt um den zu editierenden Artikel ein-eindeutig zu bestimmen.



          UmbauZiel:
          --
          Der User soll über den Link in das Edit Formular kommen (klappt ja auch). Jedoch wird hier ein in Formular 1 gefülltes Array benötitgt um das wechseln zu den anderen Treffern der Suche zu ermöglichen.


          d.h.:
          ---
          - Tabelle, mit GET Link's zu jedem Artikel, der selektierte ID enthält. (erledigt)
          - Array mit allen ID's der Suche muss ebenso übergeben werden (steht aus)



          ich hoffe es ist jetzt nachvollziehbarer


          gruss
          fidel

          Kommentar


          • #6
            Du kannst das Array auch einfach in einer Session speichern.
            Ist in diesem Fall eventuell sogar einfacher, oder?
            privater Blog

            Kommentar


            • #7
              mh,

              klappt das so einfach wenn ich die bereits geöffnete session für das Usermanagement/Login verwende ?

              Beispiel ?

              gruss
              fidel

              Kommentar


              • #8
                Natürlich, es ist zwar nicht unendlich Platz, aber nen Array passt bei dir bestimmt noch rein

                Kommentar


                • #9
                  Du hängst einfach das Array in die Session ein. (komische Formulierung ).
                  PHP-Code:
                  <?php

                      $_SESSION
                  ['search_results'] = $your_own_array;

                  ?>
                  Ich weiß jetzt nicht, wie fit du mit dem Umgang mit Sessions bist, also nicht falsch verstehen, wenn ich dich jetzt unterschätzen sollte .
                  Tutorial: Daten per Session übergeben
                  privater Blog

                  Kommentar


                  • #10
                    ok, jetzt is die verwirrung komplett.

                    form 1:
                    PHP-Code:
                    <?php
                    while($row mysql_fetch_array($resultMYSQL_ASSOC))
                    {
                    // ARRAY
                    // Daten ins Array
                    $daten[$i] = $row['artikel_inv_nummer'];
                    // Vom Array in die Session
                    $_SESSION[$i]     = $daten[$i];
                    }
                    //
                    // blablub
                    //
                    //
                    // Zeigt Sessiondaten: von User Login sowie alle ID's der Suche
                    echo "<pre>\n";
                    print_r($_SESSION);
                    echo 
                    "</pre>\n";

                    ich wechsels mittels dem Link und der jeweils individuellen ID (Get-mässig) zu einem bestimmten Artikel --> FORM 2
                    PHP-Code:
                    <?php
                    error_reporting
                    (E_ALL);
                    //
                    echo "<pre>\n";
                         
                    print_r($_SESSION);
                    echo 
                    "</pre>\n"
                    //
                    // Resultat: nur noch die Login Daten werden angezeigt....
                    geistige umnachtung zieht übers land/meinen kopf


                    EDIT: zeitgleich @ ben: schau ich mir an,
                    muss nur kurz noch paar andere funktionen fix machen.

                    Kommentar


                    • #11
                      Mach das mal so:
                      PHP-Code:
                      <?php

                          $sql 
                      'SELECT ... ';
                          
                      $res mysql_query($sql) or die(mysql_error());

                          
                      $search_results = array();

                          while(
                      $tmp mysql_fetch_assoc($res)) {
                              
                      $search_results[] =  $tmp;
                          }

                          
                      $_SESSION['search_results'] = $search_results;

                      ?>
                      Du nutzt dort den Index $i, der aber gar nicht definiert ist.

                      Grüße Ben.
                      privater Blog

                      Kommentar

                      Lädt...
                      X