Autor | Zpráva | ||
---|---|---|---|
mafos Profil |
Dobrý večer,
snažím se rozchodit nákupní košík pomocí návodu na stránce http://php.vrana.cz/nakupni-kosik.php . Všechno mi funguje. Jen mám ten problém, že když chci změnit počet kusů zboží, tak nemůžu přijít na to jak to napsat :-( Zkusil jsem spoustu možností, ale nic mi nefunguje. Počet kusů mám načtené z formuláře v poli. Nejvíce jsem se přiblížil ke kýženému výsledku tímto kodem, ten ale stejně nefunguje, protože každému zboží přiřadí počet kusů, který je na posledním místě v poli pocet :-( Nenapadá Vás někoho co s tím? Děkuji foreach ($_POST["pocet"] as $key => $val) $link = mysql_connect ("xxx", "xxx", "xxx") or die ("Nepovedlo se připojit na databázový server"); $db = mysql_select_db("xxx", $link) or die ("Nepovedlo se otevřít databázi"); mysql_query("SET NAMES 'cp1250'") or die('Nepodařilo se nastavit jazyk'); $result = mysql_query("SELECT * FROM produkty WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); while ($row = mysql_fetch_assoc($result)) { $_SESSION["kosik"][$row["id"]] = $val; } |
||
Alphard Profil |
#2 · Zasláno: 9. 4. 2013, 21:34:14
Ten kód je celkově nehezký.
- připojení k db dejte na začátek a připojte se jen jednou, určitě ne v cyklu. - ten dotaz na databázi tam byl jenom kvůli vypsání detailů o produktu, na úpravu množství ho vůbec nepotřebujete - změnu počet kusů můžete udělat úplně stejně jako přidání nového $_SESSION["kosik"][intval($_GET["id"])] = intval($_GET["pocet"]); při existujícím id se hodnota přepíše (to už skoro máte, jen se zbavte toho while)
|
||
mafos Profil |
#3 · Zasláno: 9. 4. 2013, 21:55:24 · Upravil/a: mafos
Ne, prostě to nechápu :-(
Takto to vypisuji a na stejné stránce bych chtěl pokračovat dalšími kroky, jenže prostě pořád nechápu jak změnit ten počet. Děkuji za pomoc. if ($_SESSION["kosik"]) { if (isset($_POST["doprava"])){ echo "doprava"; foreach ($_POST["pocet"] as $key => $val){ $_SESSION["kosik"][intval($_GET["id"])] = intval($val); } } else{ echo " <h1>Nákupní košík</h1> <div style=\"width: 500px; text-align: center; font-weight: bold; margin: 0 auto\"> <div style=\"float: left; margin-left: 10%; width: 20%; color: #b1bb25\"><br>Košík</div><div style=\"color: #10a3c4; width: 20%; float: left\">Doprava<br>a platba</div><div style=\"color: #10a3c4; width: 20%; float: left\">Kontaktní<br>údaje</div><div style=\"color: #10a3c4; width: 20%; float: left\">Potvrzení<br>objednávky</div> <div><img src=\"images/o1.jpg\" width=500 height=13 alt=\"Ukazatel průběhu objednávky\"></div> </div> <div style=\"clear: both\"></div> <table style=\"width: 100%; margin-top: 3%\"> <tr style=\"text-align: center; font-weight: bold\"> <td>Název produktu</td> <td style=\"width: 9%\">Množství</td> <td style=\"width: 13%\">Cena</td> <td style=\"width: 20%\">Cena celkem</td> <td style=\"width: 3%\"></td> <tr> "; $link = mysql_connect ("xxx", "xxx", "xxx") or die ("Nepovedlo se připojit na databázový server"); $db = mysql_select_db("xxx", $link) or die ("Nepovedlo se otevřít databázi"); mysql_query("SET NAMES 'cp1250'") or die('Nepodařilo se nastavit jazyk'); $result = mysql_query("SELECT * FROM produkty WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); $pocitadlo = 0; echo "<form action=\"nakupnikosik.php\" method=\"post\" enctype=\"multipart/form-data\">"; while ($row = mysql_fetch_assoc($result)) { echo " <tr> <td style=\"padding-left: 2%\">".$row["nazev"] . "</td> <td style=\"text-align: center\"><input type=\"text\" name=\"pocet[".$pocitadlo."]\" size=1 style=\"text-align: center\" value=\"" . $_SESSION["kosik"][$row["id"]] . "\"></td> <td style=\"padding-right: 2%; text-align: right\">".$row["cena"]." Kč</td> <td style=\"padding-right: 2%; text-align: right\">".$row["cena"]*$_SESSION["kosik"][$row["id"]]." Kč</td> <td style=\"text-align: center\"><a href=\"?smazat=" .$row["id"]."\"><img src=\"images/delete.gif\" style=\"vertical-align: middle; float: right\" alt=\"Smazat položku z košíku\"></a></td> </tr>"; $pocitadlo++; } echo "</table>"; echo "<div style=\"text-align: right\"><input type=\"submit\" name=\"doprava\" value=\"Pokračovat v objednávce\"></div> </form>"; mysql_free_result($result); } } else { echo "<h1>Nákupní košík</h1>"; echo "Košík je prázdný"; } Prostě nějak nechápu, jak se mám dostat k tomu id, jestli mi rozumíte. GET[id] tam nechat nemůžu, to mi je jasný, protože ho nijak neodesílám, ale jak se teda k těm hodnotám mám dostat? To mi nějak jasný není :-( Už jsem na to přišel :-) Díky moc Tak jak jsem to udělal napíšu pro ostatní. Jako jméno toho inputu s množstvím zboží jsem dal pole[id zboží] <td style=\"text-align: center\"><input type=\"text\" name=\"pocet[".$row["id"]."]\" size=1 style=\"text-align: center\" value=\"" . $_SESSION["kosik"][$row["id"]] . "\"></td> a pak výpis jsem udělal takto: foreach ($_POST["pocet"] as $key => $val){ $_SESSION["kosik"][$key] = $val; } Není to zas tak strašný, ale strávil jsem nad tím několik hodin se přiznám. A přitom to potřebovalo jen lehké nakopnutí :-) Takže ještě jednou díky |
||
Časová prodleva: 11 let
|
0