Всем здравствуйте! У меня такой вопрос: каталог вертюмиарта 1.0 (Joomla 1.5), товарам присваивается тип товара (например, характеристики лампочек) и в этом типе создается несколько параметров (мощность, цоколь и т.д.), у параметров есть значения (20W, 100W). Если товару, мы присваиваем этот тип, то в карточке товара все его параметры отображаются вне зависимости, имеют ли они какие-нибудь значения или нет. Вопрос: можно ли и как сделать так, чтобы в карточке товара отображались лишь те параметры, которым поставлено значение, а если там оставить поле с параметром пустым, то он бы вообще не в карточке не выводился. Там должно быть какое-то условие, но я в PHP чайник, поэтому, прошу, пожалуйста подскажите, что нужно дописать в каком файле, чтобы все заработало. Опережу возможный ответ: создание другого типа товаров с другим набором параметров - это решение не подходит. Заранее спасибо.
Может кустарно, но нашла решение. Но есть еще проблема, как изменить вид формы? Заменить поля множественного выбора на чекбоксы? В HTML это понятно как сделать, а в PHP я совсем не знаток... Поясню конкретнее. В файле administrator/components/com_vertuemart/html/shop.parameter_search_form.php есть кусок кода стр. 293 Код (PHP): if (!empty($parameter_values)) { // List of values $fields=explode(";",$parameter_values); echo "<td width=\"55%\" height=\"2\" valign=\"top\">\n"; echo "<select class=\"inputbox\" name=\"$item_name"; if ($db->f("parameter_multiselect")=="Y") { $size = min(count($fields),6); echo "[]\" multiple size=\"$size\">\n"; $selected_value = array(); $get_item_value = vmGet($_REQUEST, $item_name, array()); foreach($get_item_value as $value) { $selected_value[$value] = 1; } foreach($fields as $field) { echo "<option value=\"$field\"".(($selected_value[$field]==1) ? " selected>" : ">"). $field."</option>\n"; } } else { echo "\">\n"; echo "<option value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."</option>\n"; foreach($fields as $field) { echo "<option value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."</option>\n"; } } echo "</select>"; как можно переделать этот код, чтобы вместо тега Код (html): <select> <option> <option> ... </select> выполнялся тег Код (html): <input type="checkbox" name=" " value=" "> Я сделала во так: Код (PHP): echo "<input type=\"checkbox\" class=\"inputbox\" name=\"$item_name"; if ($db->f("parameter_multiselect")=="Y") { $size = min(count($fields),6); echo "00" ; $selected_value = array(); $get_item_value = vmGet($_REQUEST, $item_name, array()); foreach($get_item_value as $value) { $selected_value[$value] = 1; } foreach($fields as $field) { echo "value=\"$field\"".(($selected_value[$field]==1) ? " selected>" : "> "). $field."\n"; } } else { echo "\">\n"; echo "<value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."\n"; foreach($fields as $field) { echo "<value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."\n"; } } echo "00"; Но проблема у меня в том, что select создается 1 раз, а <option> - столько раз, сколько значений в базе данных. А тег <input> должен тоже создаваться столько же раз сколько и <option>. А я не знаю как это прописать... Помогите, пожалуйста, очень надо!
Попробуй применить перенос строк <br /> вместо \n Не знаю поможет ли тебе,но для себя интересно было Код (PHP): <?php $str=trim("Десант,Пехота,Летчик,"); //Создаём строку $arr= explode(",",$str); // Создаем массив из строки,где <,>- разделитель в строке,$str -строка echo "<label>Тестируем вывод input в цикле</label><br />"; foreach($arr as $inp) { echo "<input type='checkbox' name='create' value='field' />$inp <br />"; } ?>