Sessioneinträge löschen

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

  • Sessioneinträge löschen

    Hallo,

    ich speichere verschiedene Daten in Session-Variablen, die in einer Tabelle listenweise anzeigt werden. Dabei möchte ich es realisieren, dass der Benutzer Einträge über einen Button löschen kann.

    1 2 3 4
    --------------------------------
    a b c d [löschen]
    x c e e [löschen]
    v e s a [löschen]
    t n u p [löschen]
    q w f b [löschen]

    Wenn der Benutzer auf löschen klickt, soll die ganze zeile gelöscht werden. Mir fehlen nun die Ansätze, weil sich die seite ja neu aufbauen muss. Über eine Countvariable zähle ich die Einträge hoch. Hier mal ein bissle Code:


    PHP-Code:
     <?php if($_SESSION["fill"]==1) { 
              echo 
    '<table class="Stil_1" width="620" cellspacing="3">';
                  echo 
    '<tr>
                    <td class="Stil_2">Nr.</td>
                    <td class="Stil_2">Produktgruppe</td>
                    <td class="Stil_2">Artikel</td>
                    <td class="Stil_2">Ausführung</td>
                    <td class="Stil_2">Anzahl</td>
                    <td class="Stil_2">Einzelpreis</td>
                    <td class="Stil_2">Gesamtpreis</td>
                    <td>&nbsp;</td>
                </tr>'
    ;
                
    // Ausgabe der Session-Einträge
                
    for($i=0$i<$_SESSION['count']; $i++) {
                    echo 
    '<tr>
                            <td align="right" bgcolor="#CCCCCC">'
    .$_SESSION['produkt'.$i]['id'].'</td>
                            <td bgcolor="#CCCCCC">'
    .$_SESSION['produkt'.$i]['produkt'].'</td>
                            <td bgcolor="#CCCCCC">'
    .$_SESSION['produkt'.$i]['artikel'].'</td>
                            <td bgcolor="#CCCCCC">'
    .$_SESSION['produkt'.$i]['art'].'</td>
                            <td align="right" bgcolor="#CCCCCC">'
    .$_SESSION['produkt'.$i]['anzahl'].'</td>
                            <td align="right" bgcolor="#CCCCCC">'
    .$_SESSION['produkt'.$i]['preis'].'</td>
                            <td align="right" bgcolor="#CCCCCC">'
    .($_SESSION['produkt'.$i]['anzahl']*$_SESSION['produkt'.$i]['preis']).'</td>
                            <td><a name="" href="" title="löschen" style="color:#E24106 ">[-]</a></td>
                        </tr>'
    ;
                 }  
            echo 
    '<tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td align="right">Gesamtbetrag = </td>
                    <td align="right">--------------------<br>'
    .$_SESSION['gesamtbetrag'].'</td>
                    <td>&nbsp;</td>
                </tr>'
    ;
            echo 
    '</table>';
    Zuletzt geändert von nilitsch; 10.04.2004, 17:20.
    Die Zeit vergeht nicht schneller als früher,
    aber wir laufen eiliger an ihr vorbei.

  • #2
    einfach $i als value von "delete" mit übergeben und ein
    PHP-Code:
    unset($_SESSION['produkt'.$_GET['delete']]); 
    Kissolino.com

    Kommentar


    • #3
      Aha, schon mal kein schlechter Ansatz. Aber wo setz ich das unset?
      Ich aheb in meinem Code oben ein anker definert, der die Aktion auslösen soll.
      Die Zeit vergeht nicht schneller als früher,
      aber wir laufen eiliger an ihr vorbei.

      Kommentar


      • #4
        Original geschrieben von nilitsch
        ... oben ein anker definert, der die Aktion auslösen soll.
        wie meinen

        ... sende die seite an sich selbst und setz den befehl innerhalb einer bedingung ein, BEVOR du die session ausliest und anzeigst.
        Kissolino.com

        Kommentar


        • #5
          Das mit dem unset ist soweit klar.
          Also ich würde nun einen Button in einem Formular setzten,
          ...
          PHP-Code:
          <td>
          <form action="<?php $PHP_SELF ?>">
           <input type="submit" name="delete" value="$_SESSION['count']>
          </form>
          </td>
          Oder geht das auch einfacher?
          Die Zeit vergeht nicht schneller als früher,
          aber wir laufen eiliger an ihr vorbei.

          Kommentar


          • #6
            ja ... <a href ...>
            Kissolino.com

            Kommentar


            • #7
              aber einem <a href... kann ich doch kein value mitgeben, das die spalten zahl angibt.
              Die Zeit vergeht nicht schneller als früher,
              aber wir laufen eiliger an ihr vorbei.

              Kommentar


              • #8
                Wenn ich das so mache bekomme ich diese Fehlermeldung:

                Forbidden
                You don't have permission to access /bestellformular/< on this server.

                PHP-Code:
                // Formulardaten löschen
                    
                if(isset($delete)) {
                        unset(
                $_SESSION['produkt'.$_GET['delete']]);
                    } 
                PHP-Code:
                // Ausgabe der Session-Einträge
                            for($i=0; $i<$_SESSION['count']; $i++) {
                                echo '<tr>
                                        <td align="right" bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['id'].'</td>
                                        <td bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['produkt'].'</td>
                                        <td bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['artikel'].'</td>
                                        <td bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['art'].'</td>
                                        <td align="right" bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['anzahl'].'</td>
                                        <td align="right" bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['preis'].'</td>
                                        <td align="right" bgcolor="#CCCCCC">'.($_SESSION['produkt'.$i]['anzahl']*$_SESSION['produkt'.$i]['preis']).'</td>
                                        <td><a href="<?php $PHP_SELF ?>?delete=<?php echo $i?>" name="delete" title="löschen" style="color:#E24106 ">[-]</a>
                                        </td>
                                    </tr>';
                             }
                Zuletzt geändert von nilitsch; 10.04.2004, 18:10.
                Die Zeit vergeht nicht schneller als früher,
                aber wir laufen eiliger an ihr vorbei.

                Kommentar


                • #9
                  PHP-Code:
                  // Formulardaten löschen
                      
                  if(isset($_GET['delete'])) {
                          unset(
                  $_SESSION['produkt'.$_GET['delete']]);
                      } 
                  PHP-Code:
                  // Ausgabe der Session-Einträge
                              for($i=0; $i<$_SESSION['count']; $i++) {
                                  echo '<tr>
                                          <td align="right" bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['id'].'</td>
                                          <td bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['produkt'].'</td>
                                          <td bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['artikel'].'</td>
                                          <td bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['art'].'</td>
                                          <td align="right" bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['anzahl'].'</td>
                                          <td align="right" bgcolor="#CCCCCC">'.$_SESSION['produkt'.$i]['preis'].'</td>
                                          <td align="right" bgcolor="#CCCCCC">'.($_SESSION['produkt'.$i]['anzahl']*$_SESSION['produkt'.$i]['preis']).'</td>
                                          <td><a href="<?php $_SERVER['PHP_SELF'].'?delete='.$i?>" name="delete" title="löschen" style="color:#E24106 ">[-]</a>
                                          </td>
                                      </tr>';
                               }
                  Für Rechtschreibfehler übernehme ich keine Haftung!

                  Kommentar


                  • #10
                    Vielen Dank für den Hinweis, soweit funktioniert es auch.

                    Wenn nun ein Eintrag gelöscht wird, dann stimmt das mit der Counterreihenfolge nicht mehr...ist auch soweit klar. Bei 1,2, ,4 da meckert der Parser rum.
                    Jetzt will ich alle Einträge nochmal durchlaufen und neu speichern. Wie kann man das am geschicktesten lösen?
                    Die Zeit vergeht nicht schneller als früher,
                    aber wir laufen eiliger an ihr vorbei.

                    Kommentar


                    • #11
                      vielleicht solltest du dein konzept mal überdenken und mit eindeutigen
                      werten arbeiten ... da das ganze wohl ein warenkorb ist, wäre vielleicht
                      eine struktur wie diese angebracht:

                      $_SESSION['basket'] = array();
                      $_SESSION['basket']['artikelnummer'] = array();
                      $_SESSION['basket']['artikelnummer']['farbe'] = wert;
                      ...

                      dann kannst du mit foreach arbeiten, brauchst keinen zähler sondern
                      arbeitest mit der artikelnummer ... die sollte immer eindeutig sein
                      Kissolino.com

                      Kommentar

                      Lädt...
                      X