array via Session in popup übergeben *grrr*

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

  • array via Session in popup übergeben *grrr*

    Hallo zusammen!

    ich bin gerade total am verzweifeln. Ich habe mir ein Skript geschrieben welches einfach nicht gehen will. Ich habe es sogar schon ein Mal komplett neu geschrieben um sicher zu sein, dass es kein Tippfehler oder so ist...

    Das ganze sieht so aus bzw. läuft so ab:
    Eingangsformular: Hier wählt der User in diversen Feldern Kriterien für eine Abfrage auf - Drückt auf Senden
    Übersicht: Hier erhält der User das Ergebnis "seiner" Abfrage in Tabellenform. Die Tabelle enthätl zudem 2 Checkboxen die angeklickt werden können. (austragen und ausdrucken mit namen. Die Werte dieser Felder stellen jeweils den Primärschlüssel dieses Datensatzes dar. Die angeklickten Infos werden jeweils in ein array ausdrucken und austragen gespeichert. Nach einem Klick auf Senden baut sich diese übersicht neu auf UND es öffnet sich in Popup in dem das array $ausdrucken zur Verfügung stehen soll - tut es aber nicht *snief* Ich bekomem alle daten dort hin aber nciht dieses blöde array.

    Kann mir jemand von euch sagen an was das liegen könnte? (ich Poste jetzt einfach mla die zwei Dateien übersicht und popup - SORRY für die Länge - nur ich kann den Fehler nicht eingrenzen.

    Ach ja, das ganze spielt sich in einem div-frame "System" ab. Wobei in diesem die Zeile:
    $_SESSION['ausdrucken'] = $_REQUEST['ausdrucken'];
    gesetzt ist.

    Ich habe irgendwie, das Gefühl. dass das array zwar ankommt aber leer ist. Wenn ich nämlich im popup eine if(isset abfrage laufen lasse kommt als Ergebnis raus, dass das ganze gestzt ist...

    PHP-Code:
    <?php
    //Uebersichtsseite mit der Auswahlmöglichkeit der zu druckenden und auszutragenden Kunden

    //zu registrierende Variablen
    session_register ('bs''betr_kz''sort');

    //if-anweisung zur Übernahme der Variablen aus dem Formular

    if(isset($_REQUEST['eingang_submit'])) {

        
    //Uebernahme der Variablen aus dem Eingangsformular
        
    $bs $_REQUEST['eingang_bs'];
        
    $betr_kz $_REQUEST['eingang_betr_kz'];
        
    $sort $_REQUEST['eingang_sort'];

    } else {

        
    //Uebernahme der Variablen aus der Session
        
    $bs $_SESSION['bs'];
        
    $betr_kz $_SESSION['betr_kz'];
        
    $sort $_SESSION['sort'];
    }

    //if-anweisung die aktiv wird wenn der Drucken Button im Formular gedrückt wurde
    //hier werden die angeklickten Felder in die DB geschrieben

    if(isset($_REQUEST['uebersicht_submit'])) {

        
    //Uebernahme der Arrays, die die namen der Checkboxen enthalten
        
    if(isset($_REQUEST['ausdrucken'])) {
            
    $ausdrucken $_REQUEST['ausdrucken'];
        }
        if(isset(
    $_REQUEST['austragen'])) {
            
    $austragen $_REQUEST['austragen'];
        }

        
    //zu TESTzwecken um zu sehen, ob das array richtig übernommen wurde
        
    foreach($_SESSION['ausdrucken'] as $wert) {
            echo 
    "$wert <br />";
        }
        echo 
    "$d_feld und $n_feld";
        
    //hier gehts wieder "normal" weiter

        //ausdrucken
        
    if(isset($ausdrucken)) {
            
    $sql_query "UPDATE sd SET $d_feld = 'ja' WHERE(";
                foreach(
    $ausdrucken as $wert) {
                   
    $sql_query .= "id = '$wert' OR ";
                }
            
    $sql_query .= " 1=2)";

            
    $sqlab mysql_query($sql_query);
        }


        
    //Übergehen / austragen
        
    if(isset($austragen)) {
            
    $sql_query "UPDATE sd SET $n_feld = 'ja' WHERE(";
                foreach(
    $austragen as $wert) {
                    
    $sql_query .= "id = '$wert' OR ";
                }
            
    $sql_query .= " 1=2)";

            
    $sqlab mysql_query($sql_query);
        }

    }

    //Ende des Bereichs der für das Eintragen der angeklickten Felder zuständig ist

    //######################################################################################

    //Anzeige der Daten inkl. Seitenzahlen

    //Uebernahme der dafür notwendigen Variablen:
    @$start $_REQUEST['start']; //startwert für die SQL - Abfrage

    //Erstellen der notwendigen Arrays
    $austragen = array(); //Kunden, die nicht angeschrieben werden sollen
    $ausdrucken = array(); //Kunden, die sofort angeschrieben werden sollen

    //Ueberschrift

    echo "<h2>Trefferliste für Betreuerkennzeichen: <b>$betr_kz</b></h2>\n";

    //Start des Formulars und der Tabelle für die Ausgabe der Treffer

    echo "<form action=\"index.php?PHPSESSID=$sid&section=uebersicht&popup=ja\" method=\"post\">\n";
    echo 
    "    <table border=\"1\">\n";
    echo 
    "        <tr>\n";
    echo 
    "            <th>Kontonummer</th>\n";
    echo 
    "            <th>Name, Vorname</th>\n";
    echo 
    "            <th>Telefonnummer priv.</th>\n";
    echo 
    "            <th>Telefonnummer gesch.</th>\n";
    echo 
    "            <th>anschreiben</th>\n";
    echo 
    "            <th>nicht anschreiben</th>\n";
    echo 
    "        </tr>\n";


    //SQL Query

    $sql_query "SELECT * FROM sd";
    $sql_query .= " WHERE primaer_bt = '$betr_kz'";
    $sql_query .= " AND bs = '$bs'";
    //$ja = "ja";
    //$sql_query .= " AND '$d_feld' <> '$ja'";
    //$sql_query .= " AND '$n_feld' <> '$ja'";
    $sql_query .= " ORDER BY '$sort'";

    //Erzeugen der Abfrage an sich
    $sqlab=mysql_query($sql_query);

        
    //Zählen der Treffer
        
    $num_item=mysql_num_rows($sqlab);

        
    //Anzahl der Seiten
        
    $seite=$num_item/$max_item;

        if (
    $seite>1) {
            for (
    $i=0;$i<$seite;$i++) {
                @
    $zeile.="<a href=\"index.php?section=uebersicht&PHPSESSID=$sid&start=".($i*$max_item)."\">".($i+1)."</a>&nbsp;";
            }
        }

        if(!
    $start) {
        
    $start="0";  //falls keine Seite gewählt wurde von 0 anfangen
    }

    $sql_query.=" limit ".$start.",".$max_item;  //$max_item Items ab $start ausgeben


    $sqlab mysql_query($sql_query);

        include(
    "inc/fehlerausgabe.inc.php");


        while (
    $res mysql_fetch_array($sqlab)) {
            
    $id $res['id'];
            
    $pb $res['primaer_bt'];
            
    $sn $res['stammnummer'];
            
    $titel $res['akad_titel'];
            
    $anrede $res['anrede'];
            
    $vorname $res['vorname'];
            
    $nachname $res['nachname'];
            
    $tel_priv $res['tel_priv'];
            
    $tel_gesch $res['tel_gesch'];

            
    //Start der Zeilen für die Tabelle
            
    echo "        <tr>\n";
            echo 
    "            <td>$sn</td>\n";
            echo 
    "            <td>$nachname$vorname</td>\n";

            if(!isset(
    $tel_priv)) {
                echo 
    "            <td>&nbsp;</td>\n";
            } else {
                echo 
    "            <td>$tel_priv</td>\n";
            }

            if(!isset(
    $tel_gesch)) {
                echo 
    "            <td>&nbsp;</td>\n";
            } else {
                echo 
    "            <td>$tel_gesch</td>\n";
            }

            echo 
    "            <td><input type=\"checkbox\" name=\"ausdrucken[]\" value=\"$id\" /></td>\n";

            echo 
    "            <td><input type=\"checkbox\" name=\"austragen[]\" value=\"$id\" /></td>\n";


            echo 
    "        </tr>\n";


        }


    //Sendebutton und Reset Button

    echo "        <tr>\n";
    echo 
    "            <td colspan=\"6\"><input type=\"Submit\" name=\"uebersicht_submit\" value=\"Diese Seite Drucken und Eintragen\">\n";
    echo 
    "            &nbsp;<input type=\"reset\"></td>\n";
    echo 
    "        </tr>\n";

    //Ende der Tabelle und des Formulars

    echo "    </table>\n";
    echo 
    "</form>\n";

    if(isset(
    $zeile)) {
    echo 
    "<p>Seiten: $zeile</p>";
    }


    ?>
    PHP-Code:
    //Hier müssen noch die Einstellungen bezüglich css etc. eingestellt werden
    echo "    </head>\n";

    echo 
    "<body>\n";
    echo 
    "<p><a href=\"javascript:window.print()\">Diese Seite drucken</a></p>";

    //#############################***ENDE***HTML_HEAD##################################
    /**
    $ausdrucken = array();

    $ausdrucken[] = 1;
    $ausdrucken[] = 2;
    **/
    $ausdrucken $_SESSION['ausdrucken'];

    if(isset(
    $_SESSION['ausdrucken'])) {
        echo 
    "warum geht das nicht das array ist doch da...";
    }

        foreach(
    $ausdrucken as $wert) {
            echo 
    "$wert <br />";
        }

    echo  
    $_SESSION['betr_kz'];

    //Verbindungsaufbau zu Datenbank
    include("../inc/verbindung.inc.php"); 

  • #2
    wenn du im popup ein print_r($arrayName); machst, bekommst du den inhalt des arrays ausgegeben...

    mal versucht, das array als string zu speichern ?? (lies im manual dazu mal nach!)

    serialize

    gruss

    Kommentar


    • #3
      Hi danke für die Antwort,

      wenn ich das print_r($array); auf der 2. Seite (popup) mache ist dieses leer. Sprich ich erhalte als ausgabe Array() somit wurde das array an sich aber übergeben. richtig, oder?

      Das gleiche Spiel auf der Formularseite und das array ist mit den gewünschten Daten gefüllt...

      Das mit dem Serialisieren muss ich mir mal noch anlesen. Sieht aber ncith gerade einfach aus... Hast du noch eine andere Idee. Das müßte doch eigentlich auch so funktionieren, oder?

      Gruß

      Kommentar


      • #4
        wenn nur array() steht, ist es demzufolge leer!

        serialisieren is ganz einfach...

        $var = serialize($array);

        nu is $var ein string und kann in der session gespeichert werden

        Kommentar


        • #5
          Hi,

          sorry für die vermutlich blöde Frage. Aber wie setze ich diesen String dann wieder zu einem array zusammen?

          UND warum geht das nich "ganz normal" zu übertragen. Das sollte doch mit Sessions auch ohne serialisieren gehenl, oder habe ich da was falsch verstanden?

          Gruß

          Kommentar


          • #6
            Bin mir nicht sicher,probiers aber mal mit:

            $var = unserialize($_SESSION['var']);

            Kommentar


            • #7
              Hi,

              ok unserialize ist mein freund. Habs selber gefunden.

              Vielen Dank für die schnelle Hilfe!!!

              Echt klasse Forum!!!

              Gruß

              Kommentar


              • #8
                oh, da hat sich doch noch einer dazwischen geschoben

                danke, wäre richtig gewesen...

                Gruß

                Kommentar

                Lädt...
                X