Добавление различных идентификаторов для динамически генерируемых элементов
Я уже обращался за помощью, чтобы решить этот вопрос. Но у меня есть совет описать свой вопрос более подробно, чтобы увеличить шансы получить ответ. И я постараюсь это сделать. У меня есть страница оформления заказа на моем сайте. Существует 3 способа оплаты (банковский перевод, PayPal, Hello).(обратитесь к image_checkout1). "Привет" - это способ оплаты, добавленный мной самим. Мне нужно стилизовать с помощью CSS, Привет способ оплаты. Я нашел в Dev. dashboard html-код, который создает эти способы оплаты в браузере.(обратитесь к image_checkout2После этого я нашел php-файл, ниже приведен код, который динамически создает эти теги меток(если я правильно понимаю этот процесс).
//13.getRadioPaymode function getRadioPaymode($var, $default, $disabled, $type){ $app = JFactory::getApplication(); $db = JFactory::getDbo(); $html = ''; $gatewayType = 'TRUE'; $i = 0; $option = ''; if($disabled == 1) $option = 'disabled'; if($type == 'deposit') $gatewayType = 'is_deposit=1'; if($type == 'subscription') $gatewayType = 'is_subscription=1'; $query = "SELECT gwcode AS value, gateway_name AS text FROM #__jblance_paymode ". "WHERE published=1 AND ".$gatewayType." ". "ORDER BY ordering"; $db->setQuery($query); $paymodes = $db->loadObjectList(); if(empty($paymodes)){ $html = '<p class="alert alert-error">'.JText::_('COM_JBLANCE_NO_PAYMENT_GATEWAY_ENABLED').'</p>'; return $html; } foreach($paymodes as $item){ $checked = $img = ''; $imgPath = "components/com_jblance/gateways/images/$item->value.png"; //keep the first element checked if(++$i == 1) $checked="checked"; if(JFile::exists($imgPath)) $img = '<img class="img-polaroid" title="" src="'.$imgPath.'" alt="'.$item->text.'" style="margin-left:10px; width:100px; height:30px;">'; $html .= "\n\t". '<label class="radio" style="min-height:42px;">'. "\n". '<input type="radio" style="float:none;" name="'.$var.'" id="'.$var.'" value="'.$item->value.'" '.$checked.'>'. $img. '<span style="margin-left: 10px;">'.JText::_($item->text).'</span>'. '</label>'; } $html .= "\n"; return $html; }
Ниже приведена часть кода php-файла, который рендерит страницу с проблемой. И в этом коде есть функция, которая добавлена выше.
<div class="sp10"> </div> <div id="div-gateway" class="well well-small white"> <div class="control-group"> <label class="control-label" for="delivery"><?php echo JText::_('COM_JBLANCE_PAYMENT'); ?>:</label> <div class="controls"> <?php $list_paymode = $model->getRadioPaymode('gateway', '', '', 'subscription'); echo $list_paymode; var_dump($list_paymode); ?> </div> </div> </div>
Что я уже пробовал:
После этого как я обратился за помощью на этот сайт в первый раз. У меня есть решение. Я вставил код из этого решения. Это мой код после добавления кода из решения
$idlist = array("ida", "idb", "idc"); foreach($idlist as $id){ $html .= "\n\t". '<label id="' . $id . '" class="radio" style="min-height:42px;">'. "\n". '<input type="radio" style="float:none;" name="'.$var.'" id="'.$var.'" value="'.$item->value.'" '.$checked.'>'. $img. '<span style="margin-left: 10px;">'.JText::_($item->text).'</span>'. '</label>'; } } $html .= "\n"; return $html;
Идентификаторы были добавлены в теги этикеток, но теперь у меня есть 9 способов оплаты вместо 3 на странице (3 банковских перевода, 3 PayPal, 3 Hello)(пожалуйста, смотрите checkout_image3Я новичок в php, я просто создаю сайты с помощью CMS. Пожалуйста, помогите мне решить эту проблему.
Patrice T
Репост из Динамически создавать элементы с разными идентификаторами[^] ?
Member 14920672
Да, один из членов клуба попросил меня объяснить свою проблему более подробно и создать новый вопрос. Этот "динамически генерируемый элемент с разными идентификаторами" может быть удален.
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Richard MacCutchan
Если вы закончили с девятью объектами вместо трех, то это звучит так, как будто вы повторяете свои переменные слишком много раз. это не проблема кодирования, а простая логика. Но приведенный выше код не дает никакого представления о том, что вы делаете, чтобы получить такой результат.
Member 14920672
Я добавил полный код функции и часть кода, который рендерит эту функцию. Может быть, это поможет найти какое-то решение.