• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[GELOEST] Link hinzufügen

Runshak

Mitglied
Hallo,

ich habe einen Warenkorb, welcher einen "Remove" Link erhalten soll.

PHP:
        foreach($_SESSION["shopping_cart"] as $values)
        {
        $total = 0;
            $id = $values["item_id"];
        $quant = $values["item_quantity"];
        $price = $values["item_price"];
        $name = $values["item_name"];
        $description = $values["item_description"];
        $sum = $values["item_quantity"] * $values["item_price"];
        $remove = $values["item_id"]; //hier REMOVE Link einfuegen
            // Hier wird das onclick Attribute genutzt um den dazugehörigen Dialog zu öffnen
            $btn = "<button class='buttonLog' id='mybtn-{$id}' onclick='document.getElementById(\"myModal-{$id}\").style.display = \"block\";'>Info</button>";
            // Das HTML ist in einer seperaten Template Datei ausgelagert und mit 3 "Textmarken" versehen, diese werden mit den aktuellen Werten ersetzt
            $modal = str_replace(array('{ID}', '{ITEM_NAME}', '{ITEM_DESCRIPTION}'), array($id, $name, $description), $modalTpl);
        $total = $total + ($values["item_quantity"] * $values["item_price"]);
            // Zuguter letzt wird dann noch die Tabellenzeile erstellt
            $rows .= "<tr><td>{$name}</td><td>{$btn}</td><td>{$quant} {$modal}</td><td>RMB {$price}</td><td>RMB {$sum}</td><td>{$remove}</td></tr>\n";

        }
        // Rückgabe der erstellten Tabellenzeilen
        return $rows;

Ist es möglich in dieses Konstrukt (Füllt Tabelle mit den Items welche in den Warenkorb gelegt werden) einen Link

<a href="Warenkorb.php?action=delete&id=<?php echo $values["item_id"]; ?>"><span style="color: #EC6B0D; text-decoration: none;">Remove</span></a>

wie diesen hinzu zu fügen? Die Variable $remove soll das erledigen wenn moeglich. Oder muss ich hierfuer meine Konstruktion komplett ueberdenken und umbauen?
 
Hmmm... geht das überhaupt?
So wie es für mich aussieht ist $_SESSION['shopping_cart'] ein assoziativen Array mit in etwa folgender Struktur:
Code:
$_SESSION['shopping_cart'] = ('id' => 'value',
                              'quant' => 'value',
                              'price' => 'value',
                              .......
                              );
Wie kann ich diesem Array jetzt mehrere Items hinzufügen, die dann ja zB alle mit '$_SESSION['shopping_cart']['id']' aufgerufen werden?
Was ist das Ergebnis, wenn ich so ein Array mit 'foreach' abfrage... welche Werte nimmt dann ($values) an?
 
So wie es für mich aussieht ist $_SESSION['shopping_cart'] ein assoziativen Array mit in etwa folgender Struktur
Nicht ganz, $_SESSION['shopping_cart'] ist ein multidimensionales Array:
PHP:
$_SESSION['shopping_cart'] = array( array('id' => 'value',
                                          'quant' => 'value',
                                          'price' => 'value',
                                          .......
                                        ),
                                    array('id' => 'value',
                                          'quant' => 'value',
                                          'price' => 'value',
                                          .......
                                        ),
                                    .......);
 
Ja

und wie gehnau geht das?
Ich habe es nicht geschafft

<a href="Warenkorb.php?action=delete&id=<?php echo $values["item_id"]; ?>"><span style="color: #EC6B0D; text-decoration: none;">Remove</span></a>

in eine Variable zu packen und dann auszugeben.
Oder hab ich nur falsche Trennzeichen verwendet oder es an der falschen Stelle hinzugefuegt?
 
Versuche es mal so..
PHP:
$remove = "<a href=\"Warenkorb.php?action=delete&id=".$values["item_id"]."\" style=\"color: #EC6B0D; text-decoration: none;\">Remove</a>";
 
Zu viele \" :wink:
PHP:
$remove = '<a href="Warenkorb.php?action=delete&id=' . $values['item_id'] .'" style="color: #EC6B0D; text-decoration: none;">Remove</a>';
 
OK... hast natürlich Recht... wollte dem TE aber einen Hinweis geben, wie das dann funktioniert mit dem Escapen von Quotes :wink: ' statt " geht natürlich auch... wollen wir ihn verwirren?
 
Zurück
Oben