0
我遇到圖像問題。PHP處理重複元素
我嘗試添加一個圖像ID,當用戶點擊圖像和id將被保存到數據庫。
當頁面重新加載時,具有id屬性的圖像將在img標籤中顯示id。
我標識具有id屬性的圖像的方式基於圖像src。 但是,我發現有很多重複的圖像,我的代碼會將所有重複圖像的id屬性添加到 。
我只希望添加用戶點擊的圖像的id屬性。
我的代碼
this.id
是圖像的新的id屬性,它從數據庫中產生。
//click image codes....
//assign the id to the clicked image (not all duplicated images)
this.img.attr('id',this.id);
時重新加載頁面...
$doc = new DOMDocument();
$doc->loadHTML($myHtml);
$imageTags = $doc->getElementsByTagName('img');
//get the images that has id attribute from DB
$imgSource=$this->imgSource; //imgSource is an array
$imgID=$this->imgID; //imgID is an array
//search the htmlstring and add the id attribute to the images
foreach($imageTags as $tag) {
$source=$tag->getAttribute('src');
//if the html contains the image that has id attribute..
if(in_array($source, $imgSource)){
$ids=array_keys($imgSource,$source);
foreach($ids as $id){
$tag->setAttribute('id',$imgID[$id]);
$myHtml=$doc->saveHTML();
}
}
}
}
我上面的代碼將ID分配到已經存儲在數據庫ID圖像。但是,它也會將 分配給所有重複的圖像。我需要區分這些重複的圖像,我只能在我的情況下使用php。這個問題讓我瘋狂!如果有人能幫助我,我將不勝感激。非常感謝。
非常感謝你一個Rodas。你很明白我的問題。我很感激。只有當用戶點擊第一張重複的圖像時,取消設置纔有效。如果用戶單擊第二或第三張圖像,則不會爲其分配標識,因爲代碼找到了第一張圖像的圖像來源。 +1 – FlyingCat 2013-02-12 00:25:45
然後,只有當用戶點擊一個沒有重複的圖像時,它纔會起作用嗎?我想我可能在這句話中錯過了一些東西:「它不會將id分配給他們,因爲代碼找到了第一張圖片的圖片來源。」 – 2013-02-12 00:46:49
是的,它只適用於圖像不重複的情況。我的錯。 – FlyingCat 2013-02-12 01:06:34