我繼承了一個使用Zend Framwork和Redbean Simple Model開發的Web項目,我對這些並不太熟悉。RedBean簡單模型隨機ID的
頁面似乎是動態生成以編輯實體。我面臨的問題是動態生成的頁面部分中的html元素似乎具有隨機生成的id屬性。每次我重新加載頁面時,元素都會有不同的ID。該ID的外觀像fo-1384467680734。
這對我來說是一個問題,因爲我無法編寫任何特定於某些DOM元素的CSS或任何jQuery代碼。也許有一種解決方案是爲我所針對的元素提供特定的CSS類,但我甚至不知道這是否可行。
有沒有人遇到過這個問題?你找到解決方案嗎?
開發該網站的原始公司不再維護它了,我的客戶要求我照顧它,並在其上修正一些事情。
UPDATE:
更具體的,有在網站上添加新零售商的形式。因此,零售商實體與數據庫中的零售商表相關。就我所瞭解的代碼而言,表格是根據類中的一些定義動態生成的(請參閱下面的代碼)。
正如您在代碼中看到的,零售商有一個省份和一個地區。在添加新零售商時,表單上會有下拉列表以選擇省份和地區。然而,這些下拉列表是「愚蠢的」,我想用一些jQuery讓它們更「智能」一些。我希望區域下拉列表僅顯示所選省份內的區域。通常這樣做對我來說不會有任何問題,除非我不知道如何訪問下拉列表。我需要他們有固定的ID或能夠分配他們的類,但我不知道如何在這種情況下做到這一點。
零售商定義:
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元素分配類,也不知道如何爲它們分配特定的ID。你知不知道怎麼?查看我原始帖子中的更新。我添加了一些關於我想要做什麼和一些代碼的細節。 –
可悲的是我沒有進入Zend框架,但看看我修改後的答案,也許它會幫助你得到一種感覺尋找什麼 – zewa666