Уважаемые знатоки ! Вчера курил день и ночь валидацию чекбокса .. и пытался засунуть это все в движок (ocstore 0.1.7) В общем задача: Есть несколько типов доставки (там радиокнопки стоят): Хочу добавить под кажый пункт с радиокнопкой поле с чекбоксом (Типа улуга - курьер приедет сам за деньгами к клиенту) Так вот .. В шаблоне втыкаю чекбоксы после радиокнопок Код: <?php if (!$shipping_method['error']) { ?> <?php foreach ($shipping_method['quote'] as $quote) { ?> <tr> <td width="1"><label for="<?php echo $quote['id']; ?>"> <?php if ($quote['id'] == $shipping) { ?> <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" checked="checked" style="margin: 0px;" /> <?php } else { ?> <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" style="margin: 0px;" /> <?php } ?> </label></td> <td width="534"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['title']; ?></label></td> <td width="1" align="right"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['text']; ?></label></td> </tr> <tr> <td width="1"> <input type="checkbox" name="checkme" /> </td> <td width="534"><?php echo $quote['title_nal']; ?></td> <td width="1" align="right"><?php echo $quote['text_n']; ?></td> </tr> Затем правлю скрипт доставки: В общем не буду сильно углубляться .. но все встало на моменте проверки чекбокса (нажат \ не нажат) Если нажат: прибавить сумму к тоталу Если нет: оставить прежней Валидация: Код: function checkbox_verify($_name) { $result=0; if (isset($_REQUEST[$_name])) { if ($_REQUEST[$_name]=='on') { $result=1; } else { $result=0; } } return $result; } Эту функцию прописал в тот же файлик, где и расчет доставки идет - и там же она и вызывается Вся трабла в том, что всегда значение возвращается 0 (как бы я ни крутил эту функцию, и откуда бы ни вызывал ее) даже если изначально поставили checkbox="checked" Нижайше прошу хэлпа )
HTML: <input type="checkbox" name="checkme" /> Не хватает value (хотя бы пустого). И вы уверены, что в $_name правильное имя поля (checkme)?
т.е должно быть так ?: Код: [$_name]=='checkme' и Код: <input type="checkbox" name="checkme" value="" />
Нет, я говорил о том, что в $_name должно быть checkme, а с $_REQUEST[$_name] всё правильно. Кстати, там блок else не нужен: у вас переменная $result изначально установлена в 0. В общем, выведите в лог значение $_REQUEST[$_name] и тогда будет понятно, проблема в том, что из формы значение не передаётся или здесь неправильно обрабатывается. И вообще, лучше избегать использования $_REQUEST - это может вызывать конфликты и добавлять лишних уязвимостей. Используйте $_POST.