2012-04-05 5 views
0

Eine andere Lösung kam ich mit nach dieser Frage veröffentlichen, anstatt eine der Verwendung für Schleife ein jedes Mal hinzuzufügen, ich sagte nur konnte:Php Warenkorb aktualisieren Menge mit Sessions

$session->cart[$params->id] => $qty; 

ich dies eine sein gefunden besser, weil Sie den Warenkorb auf diese Weise aktualisieren können, anstatt die gewünschte Nummer auf den bereits im Warenkorb befindlichen zu setzen.

Für alle, die diesen Beitrag lesen, habe ich eine Lösung gefunden, um den Einkaufswagen mit dem Handler zu aktualisieren. es ist wie folgt. . . zuerst in Form Teil details.php

<form method="post"> //should be added to retrieve the qty data from the text field. 

nächsten in dem Handler. . .ADD die follwing Schleife und variable

$qty = $_POST['qty']; or $qty = $_REQUEST['qty']; 

dann

for($i =0; $i < $qty ; $i++){ 
    ++$session->cart[$params->id]; 
} 

ich einen Warenkorb Webseite erschaffe mit PHP einige Aufgaben zu bewältigen. Ich habe Schwierigkeiten, die Menge eines Artikels im Warenkorb zu ändern. hier ist mein Code, dass ich die Eingabe erhalten verwenden die Vorlage behandeln und

details.php die Menge in einer Karre Ansicht anzuzeigen:

<form id="cart_form" action="handler-add-cart.php"> 
    <input type="hidden" name="id" value="<?php echo $product->id ?>" /> 
    <input type="submit" value="add to cart"/> 
    **Quantity:<input type="text" name="qty" />** 
    </form> 

handler_add_cart.php:

<?php 
require_once "include/Session.php"; 
$session = new Session(); 
**$params = (object) $_REQUEST; 
++$session->cart[$params->id];** 
header("location: cart.php"); 

Warenkorb gelegt. php:

// hier habe ich etwas HTML entfernt, um mich auf mein Problem zu konzentrieren, ich habe alle Tags in der f Iles, so dass ist nicht das Problem

<h2>Cart</h2> 

    <?php if (count($cart)): ?> 

    <table id="display"> 
     <tr> 
     <th>product</th><th>id</th><th>quantity</th><th class='price'>price</th> 
     </tr> 
     <?php foreach ($cart as $entry): ?> 
     <tr> 
     <td><a href="details.php?id=<?php echo $entry->id ?>" 
      ><?php echo $entry->name ?></a></td> 
     <td><?php echo $entry->id ?></td> 
     **<td class='qty'><?php echo $entry->qty ?></td>** 

      i cleared these fields below to not distract from the issue im having 
     <td > 
     </td> 
     </tr> 
     <?php endforeach ?> 
     <tr> 
     <th > 

     </th> 
     </tr> 
    </table> 


    </body> 
    </html> 
+0

Es könnte gut sein, um uns zu sagen, was Schwierigkeiten Sie genau haben, anstatt den gesamten Code veröffentlichen ... – Jules

+0

was der Prins tout davon. $ session-> cart, benutze pastie.org – wesside

+0

Das Problem, das ich habe, ist, wenn ich das Textfeld in der markierten Menge in der Datei details.php füllen und klicken Sie auf die Schaltfläche Add to cart, fügt der Warenkorb nur 1 zu den Informationen im Wagen. –

Antwort

0

die Menge mit dem Wert in dem Formular eingegeben zu erhöhen tun: -

$entry->qty = $qty + $_POST['qty']; 

Obwohl Sie wahrscheinlich überprüfen mögen, dass der Benutzer eine Nummer eingegeben hat, und dass die Form wird gebucht, so mögen Sie wahrscheinlich so etwas wie: -

if (isset($_POST['qty']) && is_numeric($_POST['qty])) { 
    $entry->qty = $qty + $_POST['qty']; 
} 
else 
{ 
    $entry->qty = $qty; 
} 
+0

Sie sollten auch in Betracht ziehen, ein PHP-Framework zu verwenden anstatt HTML und PHP zusammen so zu jammern - es wird sehr schwierig, sonst zu verwalten – rgvcorley

+0

dies ist keine Lösung. Ich muss irgendwie auf die Variable verweisen, sie an die Handler-add-cart.php übergeben, während ich sie getrennt oder zusammen halte, und dann aus dem Warenkorb-Objekt in der Datei cart.php ziehen.keine Idee, wie das geht –

+0

Ich werde nicht Ihr ganzes Skript für Sie schreiben - machen Sie Ihre Frage spezifischer und die Menschen werden mehr geneigt sein, Ihnen zu helfen – rgvcorley