Здравствуйте! Помогите, пожалуйста, разобраться! Разбираю код корзины и хочу добавить в него функцию выбора размера товара через radio. Собственно, саму такую функцию я сделала, но остановилась на том, как выбор пользователя (этот самый размер обуви) записать, добавить в корзину. Необходима функция на javascript, но не могу понять как ее написать. точнее приписать к тому, что есть. файл indexc.php Код (Text): <?php $_SESSION["drow"]=1; require "inc.php"; $id = (int) $_GET["prodid"]; $cart = $_GET["cart"]; $size=$_GET["size"]; //$youremail = "mail@mail.ru"; if(validid($id)) { $_SESSION["contrl"]=2; $_SESSION["drow"]=2; $sql = mysql_query("SELECT * FROM tovar WHERE id = ".sqlesc($id)); $r = mysql_fetch_assoc($sql); $p = getprice($r["price"]); $price = ($r["sale"] > 0 ? "<s>".$p." руб.</s> ".getprice($r["sale"])." руб." : $p." руб."); $cartlink = ($_SESSION["cart"][$r["id"]] ? "Удалить" : "В корзину"); $_SESSION["address"]=$r["address"]; $_SESSION["apend"]=$r["apend"]; $_SESSION["rusname"]=$r["rusname"]; include ("get1.php"); include ("sizecolor.php"); $out = <<<EOD <h1>{$r["rusname"]}</h1> <p>{$r["descr"]}</p> <p>Цена: {$price}</p> <button class="btn" id="descr_{$r["id"]}" onclick="shopping({$r["id"]});"><i class="icon-shopping-cart"></i>{$cartlink}</button> EOD; } if($cart) { $_SESSION["contrl"]=2; if(count($_SESSION["cart"]) == 0) $out = "<h1>Корзина</h1><p>Ваша корзина пуста</p>"; else { $out .= <<<EOD <h1>Корзина</h1> <div id="message"></div> <div id="checkout-form"> <form name="buy" action="/"> <table width=100% cellpadding=5 cellspacing=0 class="table table-striped"> <tr> <th width=2%><b>#</b></th> <th width=25%><b>Название</b></th> <th width=10%><b>Цена</b></th> <th width=15%><b>Количество</b></th> <th width=5%><b>Подитог</b></th> <th width=5%><b>Удалить</b></th> </tr> EOD; ksort($_SESSION["cart"]); $i = 1; foreach($_SESSION["cart"] as $prodid=>$numprod) { $sql = mysql_query("SELECT * FROM tovar WHERE id = ".sqlesc($prodid)); $r = mysql_fetch_assoc($sql); $id = $r["id"]; $name = "<a href=\"?prodid=".$id."\">".$r["rusname"]."</a>"; $pprice = getprice(($r["sale"]>0?$r["sale"]:$r["price"]),false); $finpr = number_format($pprice * $numprod); $allp += ($pprice*$_SESSION["cart"][$prodid]); $prc = number_format($pprice); $_SESSION["contrl"]=2; $_SESSION["drow"]=2; $data2 .= <<<EOD <tr id="row{$prodid}"> <td class="vmid">{$i}</td> <td class="vmid">{$name}</td> <td class="vmid">{$prc} руб.</td> <td class="vmid"> <button class="btn undecor" onclick="changeqty({$id},{$pprice},'subtotal{$id}','down')"> <i class="icon-chevron-down"></i></button> <input type="hidden" readonly id="q{$id}" name="qty" value="{$numprod}"> <input type="hidden" name="price" value="{$pprice}"> <span id="outqty{$id}" class="btn">{$numprod}</span> <button class="btn undecor" onclick="changeqty({$id},{$pprice},'subtotal{$id}','up')"> <i class="icon-chevron-up"></i></button> </td> <td class="vmid"><span id="subtotal{$id}">{$finpr}</span> руб.</td> <td class="vmid"><button class="btn undecor" onclick="delcart('{$prodid}')"> <i class="icon-remove"></i></button></td> </tr> EOD; $i++; } $_SESSION["contrl"]=2; $allp = number_format($allp); $out .= $data2; $out .= <<<EOD </table> </form> <form method="get" action="/"> <table width=100% cellpadding=5 cellspacing=0> <tr> <td align=left><button type="submit" class="btn" id="orderbtn" style="margin-top:10px;"><i class="icon-shopping-cart"></i>Оформить заказ</button></td> <td align=right><h3>Итого: <span id="final_price">{$allp}</span> руб.</h3></td> </tr> </table> </form> </div> EOD; } } if(!$id && !$cart) $out = <<<EOD EOD; if ($_SESSION["drow"]==1) { $kamm=("SELECT * FROM tovar WHERE type='$type' AND firm='$firm'"); $sql = mysql_query($kamm); while($arr = mysql_fetch_array($sql)) $data .= "<li><a href=\"?prodid=".$arr["id"]."\">".$arr["rusname"]."</a></li>\n"; } ?> <html> <head> <title>Корзина на Ajax - Smart JCart v2.0</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <meta name="viewport" content="width=device-width, initial-scale=0.20, maximum-scale=1.5, user-scalable=yes"> <meta name="apple-mobile-web-app-capable" content="yes"> <link rel="stylesheet" href="../stylecart.css" type="text/css" media="screen, projection" /> <style> #loader,#submit{margin-top:-15px;} </style> </head> <body> <?=$data;?> <div id="menu"> <?=$out?> </div> <div id="cart"> <al class="nav-header">Корзина</al> <a href="?cart=1">В корзине <span id="cart_num"><?=(is_array($_SESSION["cart"]) ? array_sum($_SESSION["cart"]) : 0)?></span> шт. (<span id="cart_total"><?=number_format($_SESSION["cart_total"])?></span> руб.)</span></a> </div> <div class="span9"> <div class="hero-unit"> </div> </div> <hr> </body> </html> shopping.js Код (Text): var icon = '<i class="icon-shopping-cart"></i>'; //значок для корзины (при использонии фреймоврка bootstrap) var formname = 'buy'; //название формы для корзины (список товара, обновление, удаление и т.п.) var cartorder = '#checkout-form'; //идентификатор названия формы всех объектов на странице (для удаления всех объектов в корзине форма скрывается) var cartnum = '#cart_num'; //идентификатор кол-ва товаров в корзине (где то на сайте) var carttotal = '#cart_total'; //идентификатор итоговой суммы (где то на сайте) var finalprice = '#final_price'; //идентификатор итоговой суммы (в корзине) function number_format(number, thousands_sep){ var integer = (number > 0 ? Math.floor (number) : Math.abs (Math.ceil (number))).toString (); for (i = integer.length - 3; i > 0; i -= 3) integer = integer.substring (0 , i) + thousands_sep + integer.substring (i); return integer; } function shopping(id){ c_num = $(cartnum); c_total = $(carttotal); descr = $('#descr_'+id); //в корзину всегда помещаем 1 товар, изменение кол-ва происходит в корзине $.get('/roma/cart.php?q=1&id='+id,function(data) { arr = data.split('|'); id = arr[0]; //id продукта cart = arr[1]; //в корзине сейчас action = arr[2]; //экшен total2 = arr[3]; //сумма act = icon+(action =='add' ? "В корзину" : "Удалить"); c_num.html(cart); c_total.html(number_format(total2,',')); descr.html(act); }); } function updatecart(){ final = totqty = 0; $("form[name="+formname+"]").find("input[type='hidden']").each(function() { if($(this).attr('name') == 'qnty') { quantity = $(this).val(); totqty += parseInt(quantity); } if($(this).attr('name') == 'price') { p = $(this).val(); fp = p*quantity; final = parseInt(final + fp); } }); } function delcart(id){ oldqty = $('#q'+id).val(); $('#q'+id).val(0); updatecart(); $('#row'+id).fadeOut('slow'); if(final == 0) $(cartorder).fadeOut('slow', function(){$(this).html('Ваша корзина пуста').fadeIn(500);}); //таблица ff = number_format(final,','); $(finalprice).html(ff); $(carttotal).html(ff); shopping(id); } function checkout(price,id,num_prod){ updatecart(); ff = number_format(final,',') $(finalprice).html(ff); $(carttotal).html(ff); $(cartnum).html(totqty); $.get('/cart/prod'+id+'/qty'+num_prod+'/update/'); } function changeqty(el,price,subt,uod) { var qty = $('#q'+el).val(); var prc = price; if(!isNaN( qty )){ if(uod == 'up'){qty++;}else{if(qty > 1){qty--;}} } $('#q'+el).val(qty); $('#outqty'+el).html(qty); $('#'+subt).html(number_format((qty*prc),',')); checkout(price,el,qty); return false; } function sendorder(){ $('#loader').show(); var values = $("#order").serialize(); var action = $("#order").attr('action'); $('#submit').attr('disabled', 'disabled'); $("#message").slideUp(750, function() { $('#message').hide(); $.post(action, values, function(data) { $('#message').html(data); $('#message').slideDown('slow'); $('#loader').fadeOut('fast', function() { $(this).hide(); }); $('#submit').removeAttr('disabled'); if (data.match('success') != null) $('#checkout-form').slideUp('slow'); }); }); } $(document).ready(function() { $("#orderbtn").click( function(){ if($('#checkout').attr('class') == 'hide'){ $('#checkout').fadeIn('slow'); $('#checkout').removeClass('hide'); } else{ $('#checkout').fadeOut('slow'); $('#checkout').addClass('hide'); } }); }); sizecolor.php Код (Text): <?php session_start(); $rusname=$_SESSION["rusname"]; $my = mysql_query("SELECT * FROM size WHERE rusname = '$rusname'"); $k = mysql_fetch_assoc($my); $cnt=mysql_num_fields($my); $cn=$cnt-1; print_r ($k); echo $cnt; $t=0; while ($t<$cn){ foreach ($k as $value){ if ("$value"==="yes") { ?> <input type="radio" name="size" value="<?php echo $value;?>"> <?php echo mysql_field_name($my, $t); } $t++; } } ?> <div id="sizecolor"> <form name="sizecolor" method="get" action="/"> </form> </div> inc.php Код (Text): <?php $mysql_host = "localhost"; $mysql_user = "root"; $mysql_pass = ""; $mysql_db = "jakson"; function sql_query($query) { $sql = mysql_query($query); return $sql; } function sqlesc($x) { return "'".mysql_real_escape_string($x)."'"; } function utf2cp($text) { return iconv("UTF-8", "CP1251//IGNORE", $text); } function dbconn() { global $mysql_host, $mysql_user, $mysql_pass, $mysql_db; mysql_connect($mysql_host, $mysql_user, $mysql_pass); mysql_select_db($mysql_db) or die('dbconn: mysql_select_db: ' + mysql_error()); } function get_row_count($table, $suffix = "") { if ($suffix) $suffix = " $suffix"; $r = sql_query("SELECT COUNT(*) FROM $table$suffix"); $a = mysql_fetch_row($r); if($a[0] > 0) return $a[0]; else return "0"; } function get_values($field, $from, $where) { $arr = explode(",",$field); $sql = mysql_query("SELECT $field FROM $from WHERE $where"); $fetch = mysql_fetch_row($sql); return (count($arr) > 1 ? $fetch : $fetch[0]); } function validid($id){return is_numeric($id) && ($id > 0) && (floor($id) == $id);} function postval($val){ return utf2cp(htmlspecialchars(strip_tags(trim($val)))); } function jsout_err($text){ return "<li>".$text."</li>"; } function jsoutcont_err($text,$errors){ return <<<EOD <div class="alert alert-error"><button type="button" class="close" data-dismiss="alert"> × </button> <p><b>{$text}</b></p> <ul class="error_messages"> {$errors} </ul> </div> EOD; } function jsout_ok($text){ return "<div class=\"alert alert-success\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\"> × </button><p><b>".$text."</b></p></div>"; } function getprice($price,$nf=true){ $p = round($price / 10)*10; return ($nf ? number_format($p) : $p); } dbconn(); session_start(); ?>
Как вы хотите, чтобы мы это сделали не имея представления? Даже не видя, что и как работает? Смотря в такой дикий скрипт, и сидеть страдать маразмом, не кому не хочется.