Chtěl bych poprosit jestli by mi někdo neporadil s úpravou jednoduchého košíku, který občas využívám.
Níže posílám php kód, kterým se vkládá zboží do košíku. Hodnoty se vkládají z níže uvedeného formuláře ($mnozstvi $id). Teď je to tak, že pokud zboží již v košíku je, aktualizuje se jen množství (ON DUPLICATE KEY UPDATE).
Potřeboval bych to upravit tak, aby když se ty pole formuláře namnoží např. 3x (vždy danému produktu se tedy přidají různé parametry par1 a par2 a množství), tak aby se do košíku zapsalo zboží 3x i s těmi parametry.
To přidávání řádků tabulky jsem vyřešil skriptem níže, akorát zase nevím, jak dát těm polím par1 a par2 různé ID 1-3.
Děkuji za případné podměty.
KOD KOŠÍK:
if(isset($delete)){
mysql_query("DELETE FROM dm_kosik WHERE prod_id = '".$delete."' AND session = '".$PHPSESSID."'");
}
if(isset($mnozstvi))
foreach ($mnozstvi as $id => $count){
if($count){
$q = "INSERT INTO dm_kosik (prod_id, par1, par2, kusu, session, datum) values($id, '$par1', '$par2', $count, '".$PHPSESSID."', NOW()) " .
"ON DUPLICATE KEY UPDATE kusu = $count";
//echo $q;
mysql_query($q);
mysql_query("DELETE FROM dm_kosik WHERE DATE_ADD(datum,INTERVAL 1 DAY) < NOW()");
}
}
function cart_items(){
global $PHPSESSID;
$res = mysql_query("SELECT SUM(kusu) as res FROM dm_kosik WHERE session = '".$PHPSESSID."'");
$a = mysql_fetch_array($res);
return $a['res'] + 0;
}
function delete_user_cart(){
global $PHPSESSID;
$res = mysql_query("DELETE FROM dm_kosik WHERE session = '".$PHPSESSID."'");
}
FRMULÁŘ KE KOŠÍKU:
<form action="kosik" name="kosik" onSubmit="return kontrola(this);" method="post" >
<table border="0" class="tabulkazbozi" id="tabledata">
<tr>
<td><INPUT type="checkbox" name="chk[]" style="width: 25px;"/></td>
<td> </td>
<td><label>Jméno Přijmení</label><input class="tx" type="text" name="par1[]" /></td>
<td><label>Iniciály</label><input class="ks" type="text" name="par2[]" /></td>
<td><label>Upřesnění</label><input class="tx" type="text" name="0[]" /></td>
<td><label>Ks.</label><input class="ks" name="mnozstvi[<?=$data_shop["id"]?>]" type="text" value="1" size="4"/></td>
</tr>
</table>
<input type="submit" class="vlozit-dokosiku" title="Přidat do košíku" value="do košíku"></form>
SCRIPT NA PŘÍDÁNÍ ŘÁDKŮ TABULKY/FORMULÁŘE
<script>
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
//alert(newcell.childNodes);
switch(newcell.childNodes[0].name) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
}
}
var newcell2 = tr.insertCell(1);
newcell2.innerHTML = rowCount + 1;
return false;
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
if(rowCount <= 1) {
alert("Cannot delete all the rows.");
break;
}
table.deleteRow(i);
rowCount--;
i--;
}
}
}catch(e) {
alert(e);
}
return false;
}
</script>