Я унаследовал веб-проект, который был разработан с использованием Zend Framwork и Redbean Simple Model, и я не слишком знаком с ними.RedBean простая модель случайных идентификаторов
Страницы, как представляется, генерируются динамически для редактирования объектов. Проблема, с которой я сталкиваюсь, состоит в том, что элементы html в динамически сгенерированных разделах страниц имеют случайно генерируемые атрибуты идентификаторов. Каждый раз, когда я перезагружаю страницу, элементы будут иметь разные идентификаторы. Идентификатор выглядит как fo-1384467680734.
Это проблема для меня, так как я не могу написать какой-либо css или какой-либо код jquery, характерный для некоторых элементов DOM. Возможно, одним из решений было бы дать конкретные классы CSS для элементов, на которые я нацеливаюсь, но я даже не знаю, возможно ли это.
Неужели кто-нибудь сталкивался с этой проблемой? Вы нашли решение?
Оригинальная компания, которая разработала веб-сайт, больше не поддерживает ее, и мой клиент попросил меня позаботиться об этом и исправить несколько вещей на нем.
UPDATE:
Чтобы быть более точным, есть форма на веб-сайте для добавления новых ритейлеров. Таким образом, существует объект Retailer, который связан с таблицей розничных продавцов в базе данных. Насколько я понимаю из кода, форма генерируется динамически на основе некоторых определений в классе (см. Код ниже).
Как вы можете видеть в коде, розничный торговец имеет провинцию и регион. В форме есть выпадающие списки в форме, чтобы выбрать провинцию и регион при добавлении нового розничного продавца. Однако эти выпадающие списки «тупые», и я хотел бы сделать их более «интеллектуальными» с некоторым jQuery. Я бы хотел, чтобы в раскрывающемся списке региона отображались только те регионы, которые находятся в пределах выбранной провинции. Для меня было бы проблемой не делать это нормально, кроме как здесь я не знаю, как получить доступ к раскрывающимся спискам. Мне нужно, чтобы они имели фиксированный идентификатор или могли назначать им классы, но я не знаю, как это сделать в этом контексте.
Retailer Определение:
Class Default_Model_retailers extends Appclass_Redbean_SimpleModel {
/* Db fields properties
*/
public $type = "retailers";
public function getEntityModel() {
return $this;
}
public function getOrderClause()
{
return " 1 ORDER BY name ASC ";
}
public function getListColModel()
{
$cols = (array(
0 => (object) array('headerLabel' => 'Nom', 'fieldName' =>'name', 'width' => 110),
1 => (object) array('headerLabel' => 'Adresse', 'fieldName' => 'address_', 'width' => 110, 'type' => 'multiFields', 'fieldsList' => 'address.address2'),
//1 => (object) array('headerLabel' => 'Adresse', 'fieldName' => 'address', 'width' => 20),
2 => (object) array('headerLabel' => 'Code Postal', 'fieldName' =>'postcode', 'width' => 20),
3 => (object) array('headerLabel' => 'Province', 'fieldName' =>'province_id', 'width' => 50, 'type'=>'one2one', 'table.label'=>'provinces.abbrev'),
//3 => (object) array('headerLabel' => 'Province', 'fieldName' =>'province_id', 'width' => 50),
4 => (object) array('headerLabel' => 'Ville', 'fieldName' =>'city', 'width' => 50),
5 => (object) array('headerLabel' => 'Lat', 'fieldName' =>'latitude', 'width' => 50),
6 => (object) array('headerLabel' => 'Actions', 'fieldName' =>'actions', 'width' => 100)
));
return $cols;
}
public function getDefinition() {
$exp = (object) array(
'id' => (object) array(
'label' => 'id',
'type' => 'refid'
),
'name' => (object) array(
'label' => 'Nom du revendeur',
'type' => 'text'
),
'address' => (object) array(
'label' => 'Adresse',
'type' => 'text'
),
'address2' => (object) array(
'label' => 'Adresse Ligne 2',
'type' => 'text'
),
'city' => (object) array(
'label' => 'Ville',
'type' => 'text'
),
'province_id' => (object) array(
'label' => 'Province',
'type' => 'select',
'subtype' => 'provinces',
'subtype_label' => 'name_fr'
),
'region_id' => (object) array(
'label' => 'Région administrative',
'type' => 'select',
'subtype' => 'regions',
'subtype_label' => 'name_fr'
),
'phone' => (object) array(
'label' => 'Tél. (XXX) XXX-XXXX ',
'type' => 'text'
),
'postcode' => (object) array(
'label' => 'Code Postal (XXXXXX)',
'type' => 'text',
'filter' => 'postcode'
),
'contact' => (object) array(
'label' => 'Personne Ressource',
'type' => 'text'
),
'latitude' => (object) array(
'label' => 'Latitude',
'type' => 'text'
),
'longitude' => (object) array(
'label' => 'Longitude',
'type' => 'text'
)
);
return $exp;
}
public function getListEditDefinition() {
$exp = (object) array(
'id' => (object) array(
'label' => 'id',
'type' => 'refid'
),
'name' => (object) array(
'label' => 'Nom du revendeur',
'type' => 'text'
)
);
return $exp;
}
public function getProvince()
{
$province = R::load('provinces', $this->province_id);
return $province;
}
}
Есть также аналогичные классы для провинции и организаций регионов. Я не буду публиковать этот код, чтобы не сделать этот пост слишком тяжелым, но я мог бы, если понадобится.
Проблема в том, что я не знаю, как назначать классы этим динамически сгенерированным элементам HTML, и я не знаю, как назначить им определенные идентификаторы. Ты знаешь как? См. Обновление в моем исходном сообщении. Я добавил некоторые подробности о том, что я хочу сделать, и о некотором коде. –
грустно Я не в Zend Framework, но взгляните на мой измененный ответ, может быть, это поможет вам почувствовать, что искать – zewa666