Ankündigung

Einklappen
Keine Ankündigung bisher.

artikel loeschen

Einklappen

Neue Werbung 2019

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

  • artikel loeschen

    hallo

    ich bin php-anfänger und möchte einen warenkorb basteln, wo man jeden einzelnen artikel loeschen kann.
    das ganze läuft leider noch unter php 4.3, man verzeihe es mir.
    es hat eine session steuerung drin, und die artikel werden per formular als variablen geladen und dann in einarray gelegt im file add.php.


    hier der code zu warenkorb.php:




    PHP-Code:
    <?php
           
    echo "<table width=\"517\"  border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
             
    /*in dieses array wird für jeden index ein <tr>-arrayinhalt erstellt, 
    indexiert wird nach $n, damit anzahl zeilen =count($artikel) entspricht*/

           
    $form=array();

    //$artikel wird ausgezählt und per schlaufe und$n angesprochen
          
                
    $max count($artikel);
                for (
    $n=0$n $max$n++) {
                 

                
    //über den link kann man sehen, dass $n ausgeben wird
            //$form lädt eine ganze html-zeile dynamisch nach $n
                       
    $form[$n]= "<tr width=\"517\" class=\"schriftweiss\"><td align=\"left\" width=\"150\">\n".$artikel[$n]."</td><td align=\"left\"width=\"20\">".$anzahl[$n]."</td><td align=\"left\" width=\"100\">\n ".$preis[$n]."</td><td><a href=\"warenkorb.php?form=$"n target="_self\">Artikel löschen</a></td></tr>";
                

                       
    //$form[$n] wird ausgegeben-->das funktioniert!
                          
    echo $form[$n];
                
    /*hier wird schwierig: es sollte überprüft werden, ob das per link übergebene $form[$n] dem aktuellen $n für die zeilennummer ($form[$n] entspricht, wenn ja, sollte die entsprechende zeilennummer über unset($form[$n]); gelöscht werden.
    die variablen werden an den link gehängt, aber beim loeschen passiert nichts*/

                                                                     
    if($form[$n]==$n){
                 unset(
    $form[$n]);
                 }
            
            }
            
                
                
                                     echo 
    "</table>";
                   
            
          
            
    ?>
    es funktioniert soweit, dass die artikel tatsächlich ausgegeben werden, das array $form habe ich gemacht, damit ich über $n sozusagen als id eben einen ganzen tr loechen kann, zeilenweise.
    wüsste ich, wieviele elemente $form hat, dann könnte ichs, aber dynamisch bring ichs einfach nicht hin.
    ich hoffe, ich habe mich verständlich ausgedrückt.

    ich wäre froh, wenn mir jemand helfen könnte.
    ps: man verzeihe mir, dass ich noch register_globals=on benutze.

    beste grüsse

  • #2
    um ehrlich zu sein sehe ich im ganzen Post kein «?» d.h. keine Frage..

    Kommentar


    • #3
      sorry, die frage ist, warum die ifbedingung nicht greift :

      PHP-Code:
      <?php
      if($form[$n]==$n){ 
                   unset(
      $form[$n]); 
                   } 
      ?>
      irgendwie scheint meine geplante die zuweisung per $n nicht zu funktionieren, wieso geht das nicht?

      weil so könnte ich eben jeden einzelnen <tr> über $n loeschen.

      vielen dank für die hilfe

      grüsse

      Kommentar


      • #4
        PHP-Code:
        <?php
         
        if($form[$n]==$n){
        ?>
        $n ist ne Zahl irgendwo zwishen 0 und deiner maximalen artikelzahl. $form[$n] enthält deinen html-tag. Die IF-Anweisung funktioniert nicht weil $form[$n] eben nicht $n entspricht.


        PHP-Code:
        <?php
                    
        for ($n=0$n count($artikel); $n++) { 
        ?>
        Das ist etwas kompakter und bewirkt das gleiche es sei denn du verwnedest $max irgenwoe nochmal.


        Irgendwie kann das so nicht funktionieren. Versuch mal folgendes:

        Gib in der Übersicht des Warenkorbes Radiobuttons für jeden eintrag mit aus. Die values der buttons nummeriesrt du durch (bei 0 anfangen). Den Radiobutton nenst du am besten del_pos. Wenn du nun einen auswählst und das formular abschickst machst du ne if-prüfung (if($_GET[del_pos]==$n)continue und das vor $form[$n]= "<tr width=\"517\" class=\... So überspringst du das einbauen dieses Artikels.

        Ich hoffe ich konnte dir weiterhelfen auch wenn ich nicht 100%ig verstanden habe wie dein Warenkorb arbeitet.

        mfg baba

        Kommentar

        Lädt...
        X