Требуется ваша помощь. Нужен скрипт. И так. Я делаю небольшой "магазин". Необходимо чтобы человек не смог купить на сумму более 25 рублей. Товары на сайте выбираются по checkbox ам. Пример: Товар #1 - 15руб | Товар #2 - 15руб | Товар #3 - 15руб | Товар #4 - 15руб | Товар #5 - 15руб | Товар #6 - 15руб | Товар #7 - 10руб | Товар #8 - 10руб | Товар #9 - 10руб | Товар #10 - 5руб | Товар #11 - 5руб | Товар #12 - 5руб | Код должен запретить пользователю выбрать товаров на сумму больше 25 рублей. При этом есть select, в котором есть выбор максимальной суммы... и последнее без лимита 代码: <div id=content> <form> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> </form> <select> <option value="25">25</option> <option value="50">50</option> <option value="75">75</option> <option value="unlim">Неогр</option> </select> </div> На другом сайте дали такой вариант: 代码: <script type="text/javascript"> $(document).ready(function() { var cnt = 0; $("#content > input:checkbox:checked").each(function(){ cnt++; }) var allCheckboxes = $("#content input:checkbox"); $("#content > input").change(function(){ if(this.checked) {cnt++;} else{cnt -= 1 ;} if(cnt >= 3){ var notChecked = allCheckboxes.not(':checked'); $("#content > input:checkbox:checked").each(function(){ $(notChecked).attr('disabled',true); }) } else{ $("#content > input:checkbox:checked").each(function(){ $(allCheckboxes).attr('disabled',false); }) } $("#images").text(cnt); }) }); </script> <div id=content> <input name="cb[]" type="checkbox">15 рублей</input> <input name="cb[]" type="checkbox">15 рублей</input> <input name="cb[]" type="checkbox">15 рублей</input> <input name="cb[]" type="checkbox">15 рублей</input> <input name="cb[]" type="checkbox">15 рублей</input> <input name="cb[]" type="checkbox">10 рублей</input> <input name="cb[]" type="checkbox">10 рублей</input> <input name="cb[]" type="checkbox">10 рублей</input> <input name="cb[]" type="checkbox">10 рублей</input> <input name="cb[]" type="checkbox">10 рублей</input> <input name="cb[]" type="checkbox">10 рублей</input> <input name="cb[]" type="checkbox">10 рублей</input> <input name="cb[]" type="checkbox">5 рублей</input> <input name="cb[]" type="checkbox">5 рублей</input> <input name="cb[]" type="checkbox">5 рублей</input> <input name="cb[]" type="checkbox">5 рублей</input> </div> Но он подсчитывает количество нажатых checkboxов а не стоимость
я в этом не разбираюсь, но если подумать логически, то возникает такая мысль: если возможно, можно сделать сложение товаров, и если будет стоимость этих товаров выше 25 руб, то произойдет остановка покупки. пример: товар 7 + нет товара = 10 руб 10<25, значит, покупка возможна, товар 7 + товар 12 + товар 5 = 30 руб. 30>25, значит, покупка невозможна, товар 2 + товар 7 = 25 руб 25=25, значит, покупка возможна.
Я про это и толкую. Нужно чтоб сайт сам подсчитывал, и не давал купить больше возможного! При этом нужно на сервер отправить данные о том что он купил.
Делай массив из CheckBox и рядом массив с ценами, которые написаны в этих чекбоксах. При нажатии на 1 из них идет проверка на CheckBox->Checked, если true, то прибавляем к финальной сумме цену из 2-го массива и делаем CheckBox->Enabled = false, у всех тех, которые в сумме будут давать более 25 р. Почти аналогично, если CheckBox->Checked == false;
С помощью пхп 代码: if($_POST['option1']) { $a1='1'; } if($_POST['option2']) { $a2='1'; } if($_POST['option3']) { $a3='1'; $a = $a1+$a2+$a3; if ($a>2) { echo "<script>alert('Не более двух!')</script>"; } <td><input type="checkbox" name="option1"> Описание1</td> <td><input type="checkbox" name="option2"> Описание2</td> <td><input type="checkbox" name="option3"> Описание3</td> Более подробно могу объяснить в пм А подсчет стоимости это совсем просто
Вот, набросал пример на JS http://jsfiddle.net/Kenpachi/M5Bks/ Если лень по ссылки переходить и смотреть как это работает : Глупо для данной функции обновлять страницу, если так хочется через php то юзай Ajax
А как мне отправить на сервер то что купил гость. <input name="cb[]" value="15" type="checkbox" /> Ведь name имеет уже значение cb[]
Да там просто проверки надо ставить. Самая главная есть ли у перса столько денег для покупки. А потом при нажатии купить, скрипт считает сколько галок стоит в чекбоксах и минусует лк. На самом деле несколько строчек скрипта. И в топку джиквери с аяксом.
основа этого личного кабинета, полагаю сделана на php? в любом случае, думаю у тебя товар берется из базы mysql, так что тебе мешает сделать 2-ю переменную суммы товара (вторую) , назовем её TovSum т.е. переменная будет подсчитывать "какова сумма, если добавить в корзину". например: у тебя клиент взял товар на сумму 24руб, до лимита у него остается ещё 1 руб. он клацает по товару, который стоит 1руб, TovSum = 25, значит разрешает добавлять, иначе - лесом.
Да с этим мне уже помогли. Осталось решить проблему отправки данных на сервер чтобы потом с помощью $_POST сделать запись в базу данных.
ну а с этим уже проще простого, если не знаешь как это сделать самому - открой ту же самую регистрацию от ПВ. главное не забывай про инъекции. вместо myql_escape_string используй - mysql_real_escape_string.
Я о элементарной благодарности говорю за готовый код. По теме: Если хочешь передать данные пхп то код придется поменять. html+css: http://jsfiddle.net/Kenpachi/M5Bks/ php: 代码: foreach($_POST['cb'] as $id) echo $id;
代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> <script> var __SUM = 0; $(document).ready(function(){ $("input[type=checkbox]").on("change", function(event) { if (this.checked) { __SUM += parseInt($(this).attr('name')); //а чё у нас валуе в нэйм Оо }else{ __SUM -= parseInt($(this).attr('name')); } }); $("form").on("submit", function(event) { var limit = $('select option:selected').val(); if(__SUM == 0) {alert('Мало');return false;} if(__SUM > limit && limit != 'unlim'){ alert('Много'); return false; }else{ $.post('index.php', $('form').serialize(), function(data) { if(data.length == 0){data = 'нихуя не вещает';} alert('Магазин вещает: '+data); }); } return false; }); }); </script> </head> <body> <div id=content> <form> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="15" type="checkbox">15 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="10" type="checkbox">10 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input name="5" type="checkbox">5 рублей</input> <input type="submit" value="Купить"> </form> <select> <option value="25">25</option> <option value="50">50</option> <option value="75">75</option> <option value="unlim">Неогр</option> </select> </div> </body> </html>