Autor Zpráva
SLowK
Profil *
Ahoj, řeším problém. Mám nákupní košík a potřebuji odesílat do seznamu vybraného zboží i množství daného produktu co zákazník zadal do textboxu. Už jsem zkusil vše co mě napadlo.

přidání do košíků:

if(!empty($_POST['pridat'])){
    $_SESSION["kosik"][intval($_GET["a05id"])][intval($_POST["pocet"])]=array();
}

detail košíku:


if(!empty($_SESSION['kosik'])){
$result = mysql_query("SELECT * FROM a05zbozi WHERE a05id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')");
while ($row = mysql_fetch_assoc($result)) {
        echo '<center><table><td width="150">'.htmlspecialchars($row["05nazev"])."</td><td width='150'>".($row["a05cena"]).'Kč'."</td></center>";
        echo '<td><a href="kosik.php?a05id='.$row['a05id'].'&smazat=true" ><img src="obrazky/krizek.jpg" width="20" height="20"/></a></td></table>';
       
    }
    mysql_free_result($result);
    echo '</div><br/><br/>';

}


Neměl by někdo nějakou radu ? :-) Díky Všem co pomůžou :-)
Taps
Profil
SLowK:
zkus
<?
if(!empty($_GET['pridat'])){
    $_SESSION["kosik"][intval($_GET["a05id"])]=intval($_GET["pocet"]);
}
?>
viz též http://php.vrana.cz/nakupni-kosik.php
SLowK
Profil *
Taps:
to už jsem zkoušel, ale nefunguje to. Vyhazuje to že je nedefinovanej index "pocet". Už nevím myslím si že přes ten $_POST by to mělo fungovat, ale nevím jestli se takto může kombinovat $_POST a $_GET v $_SESSION .. Jen prostě nevím jak to pak vypsat kolik tam teda zadal. Někdo nějakou radu prosím ?
Taps
Profil
SLowK:
to už jsem zkoušel, ale nefunguje to. Vyhazuje to že je nedefinovanej index "pocet"
Toto se dá ošetřit pomocí funkce
<? isset() ?>
SLowK
Profil *
Tak to jsem udělal chybu to nehází a jak to vypíšu k danému ID ?


mno tak do $_SESSION to zřejmě dostanu, ale jak pak ten počet z toho zase vypíšu ? Prosím poraďte .


jinak takhle to tam teda přidávám :

if(!empty($_POST['pridat'])){
    $_SESSION["kosik"][intval($_GET["a05id"])][intval(isset($_GET["pocet"]))]=array();
}

už jen jak to tedy vypsat.
Taps
Profil
SLowK:
počet k danému ID přiřadíš pomocí kodu [#2] Taps, následně si pak můžeš vytisknout pole session
<?
print_r($_SESSION["kosik"]);
?>
a vytáhnout si potřebné SESSION
SLowK
Profil *
o to už jsem se taky snažil prostě nic nefunguje :-(( nemohl by mi to prosím někdo nějak víc přiblížit ?
SLowK
Profil *
Ahoj, vím že už asi otravuji, ale opravdu už nevím jak na to ....Potřebuji vypsat položku v $_SESSION takhle do $_SESSION přidávám

if(!empty($_POST['pridat'])){
    $_SESSION["kosik"][intval($_GET["a05id"])][intval($_POST["pocet"])]=array();
}

mno a jde o to že potřebuji vypsat položku "pocet". Položka "pocet" je textbox do kterého uživatel zadá číselnou hodnotu a tu já potřebuji pak načíst na jiné stránce k dané položce, kterou si uživatel vybral.
Kcko
Profil
$_SESSION["kosik"][intval($_GET["a05id"])][intval($_POST["pocet"])]=array();

ukládáš něco jako

kosik[cislo][cislo] = prazdné pole. To je skutečně cílem?

Neznám tvoje předchozí vlákna, ani je nebudu studovat, ale měl by sis to ukládat jinak.
Např.

$_SESSION["kosik"][intval($_GET["a05id"])]["pocet"]= intval($_POST["pocet"]);
pak si vypíšeš ono číslo přes
echo SESSION["kosik"]"nějakéIDproduktuNeboCoToTamvlastněMáš"]["pocet"];

Znovu opakuji, neznám tvoji strukturu, takže by to šlo možná navrhnout celé lépe.
SLowK
Profil *
mno tak to vkládání do $_SESSION sem předělal, ale stále mi to nevypíše "pocet" zkouším to jen takto..

        echo $_SESSION["kosik"]["pocet"];
ale stejně mi to píše nedefinovaný index "pocet".... už fakt nevím ...


zkouším to ještě takto, ale taky nic. Ani žádnou chybu to nehází a ani žádný výsledek ...


isset($_SESSION["kosik"]["pocet"])
Alphard
Profil
Nejlépe si vypište celé pole var_dump($_SESSION) a podívejte se, jak vypadá.
SLowK
Profil *
tak v poli to vidím tak jak to tedy vypsat ? I v poli je to přiřazené k "pocet" takže problém je jedině při výpisu ..
Moderátor jenikkozak: Nezakládej nám tu na diskusi duplicitní vlákna, špatně se v nich pak orientuje.
SLowK
Profil *
proč to takhle nefunguje ?

echo $_SESSION["kosik"]["pocet"];
Taps
Profil
SLowK:
máš na začátku stránky ?
<?
session_start();
?>
SLowK
Profil *
Taps:
to mám .... někdo nějaký nápad jak vypsat ten počet ? V poli to mám když si ho vypíšu pouze nevím jak vypsat čistě ten počet..
Kcko
Profil
SLowK:
http://sandbox.rjwebdesign.cz/djpw/
http://sandbox.rjwebdesign.cz/djpw/index.phps

S čím máš problém?
SLowK
Profil *
Kcko:
takhle jsem to zkoušel taky a prostě mi to nejde. Mno jde o to že mám tlačítku přidat do košíku vedle toho textbox množství . A já potřebuji když klikne na přidat do košíku tak aby se odeslal i ten textbox to mám takhle...

if(!empty($_POST['pridat'])){
$_SESSION["kosik"][intval($_GET["a05id"])]["pocet"]= intval($_POST["pocet"]);
}

mno a na jiné stránce se to snažím zobrazit tak to ....


if(!empty($_SESSION['kosik'])){
$result = mysql_query("SELECT * FROM a05zbozi WHERE a05id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')");
while ($row = mysql_fetch_assoc($result)) {
        echo '<center><table><td width="150">'.htmlspecialchars($row["05nazev"])."</td><td width='150'>".($row["a05cena"]).'Kč'."</td></center>";
        echo '<td><a href="kosik.php?a05id='.$row['a05id'].'&smazat=true" ><img src="obrazky/krizek.jpg" width="20" height="20"/></a></td></table>';
        echo $_SESSION["kosik"]["pocet"];
    }
    mysql_free_result($result);
    echo '</div><br/><br/>';

} 


no a nechce mi to zobrazit ten počet jinak jako produkt na který klikl tak to mi to v košíku zobrazí, ale ten počet prostě ne!
Kcko
Profil
Ten kód je celý divný. A počet získáš jinak snad ne?

echo $_SESSION["kosik"]["pocet"]; => echo $_SESSION["kosik"][$idProduktuNeboCoSiTotamUkládáš]["pocet"];

=========
Rozumíš vícerozměrným polím? Zdá se mi, že moc ne. Vypis si session var_dump($_SESSION); a podívej se co v něm máš a jak to máš mít ...

Další ukázka: Z toho je to pochopitelné: http://sandbox.rjwebdesign.cz/djpw2/ http://sandbox.rjwebdesign.cz/djpw2/index.phps
SLowK
Profil *
Kcko:
mno tak sem to udělal pro přehlednost líp takhle to vypisuji :

    if(!empty($_SESSION['kosik'])){
$result = mysql_query("SELECT * FROM a05zbozi WHERE a05id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')");
while ($row = mysql_fetch_assoc($result)) {
        echo htmlspecialchars($row["05nazev"]).($row["a05cena"]);
    }
    }
a do toho bych potřeboval nějak zakomponovat počet.. To jak mi tady radíš tak to mi nefunguje ani když tento celý kód smažu a dám tam jen to co mi radíš s tím echem tak to prostě nejde. A když si vypíši pole tak tam ten počet vidím chceš to poslat jak mi to vypisuje ? Asi určitě máš pravdu že více rozměrným polím moc nerozumím ...
Kcko
Profil
SLowK:
Viz můj upravený předchozí příspěvek.
SLowK
Profil *
Kcko:
koukám na to stejně mi to nefunguje :-( já už fakt nevím 3 dny jsem nad tím strávil :-///
Kcko
Profil
SLowK:
Kde to máš? Máš k tomu nějaký přístup, možná bych se na to večer mohl podívat.
SLowK
Profil *
Kcko:
nemám, ale mohl bych to někam dát .. Dáš mi prosím email ?
Kcko
Profil
V mém profilu jsou moje kontaktní údaje. Někam si to vystav a dej mi přístup na FTP a do Databáze.
SLowK
Profil *
Kcko:
http://www.rjwebdesign.cz mohu na tyto údaje co jsou zde ?
Kcko
Profil
SLowK:
Ano.
SLowK
Profil *
Vyřešeno všem děkuji za pomoc :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: